JAVA统计服务器资源(cpu,内存,磁盘)--LINUX

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中找到想要的东西了
在这里插入图片描述

模块 jdk.management
包 com.sun.management
接口操作系统MXBean
所有超接口:
OperatingSystemMXBean,PlatformManagedObject
所有已知的子接口:
UnixOperatingSystemMXBean
公共接口OperatingSystemMXBean
扩展OperatingSystemMXBean
运行 Java 虚拟机的操作系统的特定于平台的管理接口。
返回的OperatingSystemMXBean对象 ManagementFactory.getOperatingSystemMXBean() 是该接口或接口的实现类的实例,UnixOperatingSystemMXBean具体取决于其底层操作系统。

自从:
1.5

在这里插入图片描述

修饰符和类型方法描述
longgetCommittedVirtualMemorySize()返回保证对正在运行的进程可用的虚拟内存量(以字节为单位,或者-1如果不支持此操作)。
longgetFreePhysicalMemorySize()返回以字节为单位的可用物理内存量。
longgetFreeSwapSpaceSize()返回以字节为单位的可用交换空间量。
doublegetProcessCpuLoad()返回 Java 虚拟机进程的“最近 cpu 使用情况”。
longgetProcessCpuTime()返回运行 Java 虚拟机的进程使用的 CPU 时间(以纳秒为单位)。
doublegetSystemCpuLoad()返回整个系统的“最近 cpu 使用情况”。
onggetTotalPhysicalMemorySize()返回以字节为单位的物理内存总量。
longgetTotalSwapSpaceSize()返回以字节为单位的交换空间总量。

父类方法

修饰符和类型方法描述
StringgetArch()返回操作系统架构。
intgetAvailableProcessors()返回 Java 虚拟机可用的处理器数量。
StringgetName()返回操作系统名称。
doublegetSystemLoadAverage()返回最后一分钟的系统负载平均值。
StringgetVersion()返回操作系统版本。

代码演示

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);
        }

    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值