大家好,又见面了,我是你们的朋友全栈君。
JAVA统计服务器资源(cpu,内存,磁盘)–LINUX
使用类:
com.sun.management.OperatingSystemMXBean 继承:java.lang.management.OperatingSystemMXBean JDK 版本1.8
API 说明
项目用的jdk 是1.8,接口也能调,不知道为什么1.8的api里没有这个类,只有这个类继承的java.lang.management.OperatingSystemMXBean的API,在JDK13 API中找到想要的东西了
代码语言:javascript复制模块 jdk.management
包 com.sun.management
接口操作系统MXBean
所有超接口:
OperatingSystemMXBean,PlatformManagedObject
所有已知的子接口:
UnixOperatingSystemMXBean
公共接口OperatingSystemMXBean
扩展OperatingSystemMXBean
运行 Java 虚拟机的操作系统的特定于平台的管理接口。
返回的OperatingSystemMXBean对象 ManagementFactory.getOperatingSystemMXBean() 是该接口或接口的实现类的实例,UnixOperatingSystemMXBean具体取决于其底层操作系统。
自从:
1.5
修饰符和类型 | 方法 | 描述 |
---|---|---|
long | getCommittedVirtualMemorySize() | 返回保证对正在运行的进程可用的虚拟内存量(以字节为单位,或者-1如果不支持此操作)。 |
long | getFreePhysicalMemorySize() | 返回以字节为单位的可用物理内存量。 |
long | getFreeSwapSpaceSize() | 返回以字节为单位的可用交换空间量。 |
double | getProcessCpuLoad() | 返回 Java 虚拟机进程的“最近 cpu 使用情况”。 |
long | getProcessCpuTime() | 返回运行 Java 虚拟机的进程使用的 CPU 时间(以纳秒为单位)。 |
double | getSystemCpuLoad() | 返回整个系统的“最近 cpu 使用情况”。 |
ong | getTotalPhysicalMemorySize() | 返回以字节为单位的物理内存总量。 |
long | getTotalSwapSpaceSize() | 返回以字节为单位的交换空间总量。 |
父类方法
修饰符和类型 | 方法 | 描述 |
---|---|---|
String | getArch() | 返回操作系统架构。 |
int | getAvailableProcessors() | 返回 Java 虚拟机可用的处理器数量。 |
String | getName() | 返回操作系统名称。 |
double | getSystemLoadAverage() | 返回最后一分钟的系统负载平均值。 |
String | getVersion() | 返回操作系统版本。 |
代码演示
代码语言:javascript复制package com.zhonggg.commonUtils;
import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
/** * @description: * @author: lijinzhong * @create: 2022-03-03 15:18 */
public class SystemMonitorUtils {
private static OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
public static void main(String[] args) throws Exception {
/** * 物理内存 byte */
long totalPhysicalMemorySize = osmxb.getTotalPhysicalMemorySize();
System.out.println("物理内存:" totalPhysicalMemorySize /(1024*1024*1024));
/** * 空闲物理内存 byte */
long freePhysicalMemorySize = osmxb.getFreePhysicalMemorySize();
System.out.println("空闲物理内存:" freePhysicalMemorySize /(1024*1024*1024));
/** * */
long committedVirtualMemorySize = osmxb.getCommittedVirtualMemorySize();
System.out.println("getCommittedVirtualMemorySize:" committedVirtualMemorySize /(1024*1024));
/** * */
String arch = osmxb.getArch();
System.out.println("arch:" arch);
String name = osmxb.getName();
System.out.println("name:" name);
/** *当前JVM占用的CPU负载 */
double processCpuLoad = osmxb.getProcessCpuLoad();
System.out.println("getProcessCpuLoad:" processCpuLoad);
/** * cpu 使用率 */
while (true){
System.out.println("cpu 使用率:" osmxb.getSystemCpuLoad()*100);
Thread.sleep(1000);
}
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132871.html原文链接:https://javaforall.cn