簡體   English   中英

將 JVM 堆轉儲寫入標准輸出

[英]Write JVM heap dump to stdout

我們使用以下 JVM 標志在 Docker(由 Kubernetes 管理)中運行 Spring Boot 應用程序

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -XX:+ExitOnOutofMemoryError 

正如預期的那樣,容器在 OOM 異常時重新啟動。 但是,退出時創建的堆轉儲(在/tmp 中)不再可用,因為容器已重新啟動。 雖然我們可以映射持久卷,但有沒有辦法將堆轉儲寫入 STDOUT(因為我們已經從 STDOUT 收集日志)? 使用-XX:HeapDumpPath=/dev/stdout結果

*

Dumping heap to /dev/stdout ...
Unable to create /dev/stdout: File exists

*

有沒有我在這里缺少的簡單解決方法?

就我個人而言,我會使用一個Docker Volume安裝在 Docker 鏡像中,並將內存轉儲存儲在那里,如前所述,這些內存轉儲可能是 GB 大。

-XX:HeapDumpPath=/dev/stdout/`date`.hprof

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM