ホームページ >Java >&#&チュートリアル >Java でシステム リソースの使用状況 (CPU、メモリ、ディスク) を監視するにはどうすればよいですか?

Java でシステム リソースの使用状況 (CPU、メモリ、ディスク) を監視するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-29 03:01:11344ブラウズ

How Can I Monitor System Resource Usage (CPU, Memory, and Disk) in Java?

Java でのシステム リソース使用量の監視

システムの CPU、メモリ、ディスク使用量を監視するには、SIGAR API を検討してください。外部コードや JNI を必要としない、クロスプラットフォームのリソース監視のための包括的なソリューションを提供します。その機能は次のとおりです。

  • CPU 使用率: システム全体の CPU 使用率をパーセンテージとして取得します。
  • メモリの可用性: 現在の空き容量を提供します。メモリだけでなく、システム全体の合計メモリも必要です。 JVM.
  • ディスク容量の監視: 使用可能なディスク容量と合計ディスク容量を測定します。

SIGAR API の使用

リソース監視を実装するにはSIGAR:

  1. SIGAR ライブラリを Java プロジェクトにインポートします。
  2. 新しい SIGAR インスタンスを作成します:
Sigar sigar = new Sigar();
  1. CPU 使用率: システム全体の CPU 負荷平均を割合:
double loadAverage = sigar.getLoadAverage();
int numProcessors = sigar.getCpuInfoList().length;
double cpuUsage = loadAverage / numProcessors * 100;
  1. メモリの可用性: 合計および空き物理メモリを取得します:
long totalMemory = sigar.getMem().getTotal();
long freeMemory = sigar.getMem().getFree();
  1. ディスク容量の監視: 合計ディスク容量と利用可能なディスク容量を測定します。特定のドライブまたはディレクトリの場合:
long diskTotal = FileSystems.getDefault().getPath("/", "home").toFile().getTotalSpace();
long diskAvailable = FileSystems.getDefault().getPath("/", "home").toFile().getUsableSpace();

SIGAR の代替手段

SIGAR は依然として優れたオプションですが、いくつかの代替手段が存在します。

  • Java 6 API: を使用するCPU とメモリの監視には、OperatingSystemMXBean.getSystemLoadAverage()、OperatingSystemMXBean.getAvailableProcessors()、OperatingSystemMXBean.getTotalPhysicalMemorySize()、およびOperatingSystemMXBean.getFreePhysicalMemorySize()を使用できますが、ディスク容量の監視には外部メソッドが必要です。
  • JMXツール: を活用するCPU およびメモリの監視には sun.management.OperatingSystemMXBean または java.lang.management.OperatingSystemMXBean を使用しますが、ディスク容量の監視はプラットフォームに依存します。

システム負荷平均法とディスク容量のクエリは使用できない場合があることに注意してください。 Java 6 またはすべてのプラットフォームで利用可能です。

以上がJava でシステム リソースの使用状況 (CPU、メモリ、ディスク) を監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。