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

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

DDD
Release: 2024-11-29 03:01:11
Original
341 people have browsed it

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

Monitoring System Resource Usage in Java

To monitor the system's CPU, memory, and disk usage, consider the SIGAR API. It offers a comprehensive solution for cross-platform resource monitoring without the need for external code or JNI. Its features include:

  • CPU Usage: Retrieves system-wide CPU utilization as a percentage.
  • Memory Availability: Provides current free and total memory for the entire system, not just the JVM.
  • Disk Space Monitoring: Measures the available and total disk space.

Using SIGAR API

To implement resource monitoring with SIGAR:

  1. Import the SIGAR libraries to your Java project.
  2. Create a new SIGAR instance:
Sigar sigar = new Sigar();
Copy after login
  1. CPU Usage: Obtain the system-wide CPU load average as a percentage:
double loadAverage = sigar.getLoadAverage();
int numProcessors = sigar.getCpuInfoList().length;
double cpuUsage = loadAverage / numProcessors * 100;
Copy after login
  1. Memory Availability: Retrieve the total and free physical memory:
long totalMemory = sigar.getMem().getTotal();
long freeMemory = sigar.getMem().getFree();
Copy after login
  1. Disk Space Monitoring: Measure the total and available disk space for a specific drive or directory:
long diskTotal = FileSystems.getDefault().getPath("/", "home").toFile().getTotalSpace();
long diskAvailable = FileSystems.getDefault().getPath("/", "home").toFile().getUsableSpace();
Copy after login

Alternatives to SIGAR

While SIGAR remains an excellent option, a few alternatives exist:

  • Java 6 API: Use OperatingSystemMXBean.getSystemLoadAverage(), OperatingSystemMXBean.getAvailableProcessors(), OperatingSystemMXBean.getTotalPhysicalMemorySize(), and OperatingSystemMXBean.getFreePhysicalMemorySize() for CPU and memory monitoring, but disk space monitoring requires external methods.
  • JMX Tools: Leverage the sun.management.OperatingSystemMXBean or java.lang.management.OperatingSystemMXBean for CPU and memory monitoring, but disk space monitoring is platform-dependent.

Remember that the system load average method and disk space querying may not be available in Java 6 or on all platforms.

The above is the detailed content of How Can I Monitor System Resource Usage (CPU, Memory, and Disk) in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template