簡體   English   中英

使用JMX / MBean監視Cassandra CPU使用情況

[英]Monitoring Cassandra CPU usage with JMX/MBeans

我想編寫一個簡單的Java代碼,用JMX監視Cassandra數據庫。 現在,我不得不檢索數據庫的CPU使用率。 據我所知,可能的MBean是具有屬性ProcessCpuLoadjava.lang:type=OperatingSystem

但是,在這種情況下,結果似乎將是JVM中運行的所有進程的CPU使用率,而不僅僅是Cassandra線程。 這個假設正確嗎?

我還想知道將JConsole連接到數據庫時,哪些數據顯示為CPU使用率。 是否可以直接訪問這些值(我的意思是沒有JConsole)? 還是有另一個Mbean能夠准確提供所需的值?

謝謝,尼科

操作系統mbean中的ProcessCpuLoad是正確的。 它不是所有的JVM,只有一個報告它的JVM。 您在單個JVM中沒有運行多個進程,每個Java應用程序將JVM作為單個進程運行。

您可以使用java.lang:type=Threading監視花費在各個線程上的cpu時間,但是Cassandra中有大量線程,並且它可能永遠不會完全正確(缺少GC時間之類的東西)。

如果不想使用jconsole,可以檢查:

ps -p <whatever-your-cassandra-pid-is> -o %cpu

# or depending on OS/installer 

ps -p `cat /var/run/cassandra.pid` -o %cpu

暫無
暫無

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

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