簡體   English   中英

我們如何檢查JVM過去的內存和CPU使用情況記錄

[英]How we check the past record of the usage of Memory and CPU by JVM

我想為網站寫一個管理工具。 我想在其中以圖表形式顯示網站的內存使用率和CPU使用率。 我在某處讀到JVM將這些數據寫入轉儲文件中,MAT工具使用該數據來顯示結果。 所以我的問題是,JVM在哪里以什么速率轉儲該文件。

因為我想在圖表上顯示最近24小時的使用情況。 那么我們如何捕獲這些數據。

尋求幫助

JVM中目前沒有任何東西可以生成所需的數據流。 您可以將諸如JVisualVM之類的探查器連接到您的應用程序,但這也可能會大大降低它的速度(也就是說,對於內存分析來說,它還不錯...取決於您應用程序的非功能性要求)。

另外兩個選擇:

使用MBean編寫自己的代碼

在ScheduledExecutorService中,運行一個定期過程,該過程通過MBean接口詢問JVM。 您可以生成可以在MAT中查看的堆轉儲。

使用cron和jmap

您還可以使用jmap生成堆轉儲,並安排它在操作系統級別上一次運行一次。 如果您不想或不能更改代碼,這可能會更好。

AFAIK,如果要歷史數據,則必須自己記錄下來。 使用VisualVM進行連接時,始終從連接點開始。

MAT工具可用於檢查堆轉儲。 它僅適用於內存快照,並且難以使用IMHO。

暫無
暫無

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

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