2017-06-13 16 views
0

私は基本的にはcom.sun.management.OperatingSystemMXBean.getSystemCpuLoad()の結果を時間間隔、たとえば60秒間平均します。Java(linux)の時間間隔での平均システムCPU使用率の取得

java.lang.management.OperatingSystemMXBeangetSystemLoadAverage()ですが、私が読んだところでは、「CPU使用率」ではなく「CPU負荷」が計算されます。

私が望むものを得るための既存のAPIがありますか、それとも自分で実装する必要がありますか?

答えて

0

あなたは平均的にはどのような方法で意味のあるものにしたい場合は、それが1

クエリ定期的な間隔で、現在のCPU負荷のためのシステム、より大きいですいくつかのデータ・セットの平均値である必要があります毎秒1回のように実行し、各クエリの結果を時間の経過とともに配列などの何らかのコレクションに保存します。

その後、アレイの最新の60エントリの平均を取得できます。これは、最後の60秒間の平均CPU負荷(1秒精度)です。

何かを平均化する方法がわからない場合は、average = sum_of_elements_values/number_of_elementsになります。

1秒の精度ではなく、絶対精度の形式を使用する場合は、すべてのCPUサイクルをクエリする必要があります。

関連する問題