帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
Java 使用oshi获取当前服务器状态cpu、内存、存储等核心信息
发布时间:2024-03-11 10:06:49   分类:帮助文档
Java 使用oshi获取当前服务器状态cpu、内存、存储等核心信息 文章目录 简介相关资料maven依赖oshi-官方示例获取CUP信息代码获取内存信息获取磁盘信息 简介 OSHI 是基于 JNA 的(本地)操作系统和硬件信息库。它不需要安装任何其他额外的本地库,旨在提供一种跨平台的实现来检索系统信息,例如操作系统版本、进程、内存和 CPU 使用率、磁盘和分区、设备、传感器等。 使用 OSHI 可以对应用程序进行监控,可以对应用程序所在的服务器资源进行监控,还可以监控到其他许多指标,如下: 1、计算机系统和固件,底板 2、操作系统和版本 / 内部版本 3、物理(核心)和逻辑(超线程)CPU,处理器组,NUMA 节点 4、系统和每个处理器的负载百分比和滴答计数器 5、CPU 正常运行时间,进程和线程 6、进程正常运行时间,CPU,内存使用率,用户 / 组,命令行 7、已使用 / 可用的物理和虚拟内存 8、挂载的文件系统(类型,可用空间和总空间) 9、磁盘驱动器(型号,序列号,大小)和分区 10、网络接口(IP,带宽输入 / 输出) 11、电池状态(电量百分比,剩余时间,电量使用情况统计信息) 12、连接的显示器(带有 EDID 信息) 13、USB 设备 14、传感器(温度,风扇速度,电压) 支持的平台: Windows Linux macOS UNIX (AIX, FreeBSD, OpenBSD, Solaris) 相关资料 github 地址:https://github.com/oshi/oshi API 文档:http://oshi.github.io/oshi/apidocs/ maven依赖 com.github.oshi oshi-core 6.3.2 net.java.dev.jna jna 5.12.1 net.java.dev.jna jna-platform 5.12.1 oshi-官方示例 此外,该oshi-demo模块包括一个OshiGui类,它实现了一个基本的 Swing GUI,为在 UI、监控或警报应用程序中使用 OSHI 的潜在可视化提供建议,如下所示。有关基于此方法的更高级 GUI,请参阅MooInfo 项目。 获取CUP信息代码 获取时与windows窗口等查看CUP利用率的信息有差异,本身CUP利用率存在很大的波动。 public static CpuEntity getCpu() throws InterruptedException { SystemInfo systemInfo = new SystemInfo(); GlobalConfig.set(GlobalConfig.OSHI_OS_WINDOWS_CPU_UTILITY, Boolean.TRUE); CentralProcessor processor = systemInfo.getHardware().getProcessor(); long[] prevTicks = processor.getSystemCpuLoadTicks(); // 睡眠1s TimeUnit.SECONDS.sleep(1); long[] ticks = processor.getSystemCpuLoadTicks(); long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()]; long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()]; long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()]; long cSys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()]; long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal; CpuEntity cpuEntity = new CpuEntity(); cpuEntity.setSys(new DecimalFormat("#.").format(cSys * 1.0 / totalCpu)); cpuEntity.setUser(new DecimalFormat("#.").format(user * 1.0 / totalCpu)); cpuEntity.setWait(new DecimalFormat("#.").format(iowait * 1.0 / totalCpu)); cpuEntity.setWait(new DecimalFormat("#.").format(idle * 1.0 / totalCpu)); // user + system + nice + iowait + irq + softirq + steal long cpuUtilization = user + nice + cSys + iowait + irq + softirq + steal; cpuEntity.setCombined(new DecimalFormat("#.").format((cpuUtilization * 1.0 / totalCpu)*100)); return cpuEntity; } 获取内存信息 public static MemoryEntity getMemory() { OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); MemoryEntity memoryEntity = new MemoryEntity(); memoryEntity.setMemTotal(osmxb.getTotalPhysicalMemorySize() / 1024 / 1024 / 1024); memoryEntity.setMemUsed((osmxb.getTotalPhysicalMemorySize() - osmxb.getFreePhysicalMemorySize()) / 1024 / 1024 / 1024); return memoryEntity; } 获取磁盘信息 File[] roots = File.listRoots(); Long useSum = 0l; Long totalSum = 0l; for (File file : roots) { long free = file.getFreeSpace(); long total = file.getTotalSpace(); long use = total - free; useSum += change(use); totalSum += change(total); }
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价