Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况
linux下如何获取cpu的利用率

linux下如何获取cpu的利用率“proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。
它以文件系统的方式为访问系统内核数据的操作提供接口。
用户和应用程序可以通过proc 得到系统的信息,并可以改变内核的某些参数。
”这里将介绍如何从/proc文件系统中获取与防火墙相关的一些性能参数,以及如何通过/proc 文件系统修改内核的相关配置。
1、从/proc文件系统获取相关的性能参数cpu使用率:/proc/stat内存使用情况:/proc/meminfo网络负载信息:/proc/net/dev相应的计算方法:(摘自:什么是proc文件系统,见参考资料)(1)处理器使用率(2)内存使用率(3)流入流出数据包(4)整体网络负载这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。
如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。
(1)处理器使用率这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。
它们均位于/proc/stat文件的第一行。
CPU 的利用率使用如下公式来计算。
CPU利用率= 100 *(user + nice + system)/(user + nice + system + idle)(2)内存使用率这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。
内存使用百分比= 100 * (cmem / umem)(3)网络利用率为了得到网络利用率的相关数据,需要从/proc/net/dev文件中获得两个数据:从本机输出的数据包数,流入本机的数据包数。
它们都位于这个文件的第四行。
性能收集程序开始记录下这两个数据的初始值,以后每次获得这个值后均减去这个初始值即为从集群启动开始从本节点通过的数据包。
查看Linux系统内存、CPU、磁盘使用率和详细信息

查看Linux系统内存、CPU、磁盘使⽤率和详细信息⼀、查看内存占⽤1、free# free -m以MB为单位显⽰内存使⽤情况[root@localhost ~]# free -mtotal used free shared buff/cache availableMem: 118521250866841019349873Swap: 601506015# free -h以GB为单位显⽰内存使⽤情况[root@localhost ~]# free -htotal used free shared buff/cache availableMem: 11G 1.2G 8.5G 410M 1.9G 9.6GSwap: 5.9G 0B 5.9G# free -t以总和的形式查询内存的使⽤信息[root@localhost ~]# free -ttotal used free shared buff/cache availableMem: 1213733212853448870628420268198136010105740Swap: 616038006160380Total: 18297712128534415031008# free -s 5周期性的查询内存使⽤信息每5秒执⾏⼀次命令[root@localhost ~]# free -s 5total used free shared buff/cache availableMem: 1213733212807968875008420268198152810110136Swap: 616038006160380解释:Mem:内存的使⽤情况总览表(物理内存)Swap:虚拟内存。
即可以把数据存放在硬盘上的数据shared:共享内存,即和普通⽤户共享的物理内存值buffers:⽤于存放要输出到disk(块设备)的数据的cached:存放从disk上读出的数据total:机器总的物理内存used:⽤掉的内存free:空闲的物理内存注:物理内存(total)=系统看到的⽤掉的内存(used)+系统看到空闲的内存(free)2、查看某个pid的物理内存使⽤情况# cat /proc/PID/status | grep VmRSS[root@localhost ~]# pidof nginx2732727326[root@localhost ~]#[root@localhost ~]# cat /proc/27327/status | grep VmRSSVmRSS: 2652 kB[root@localhost ~]#[root@localhost ~]# cat /proc/27326/status | grep VmRSSVmRSS: 1264 kB[root@localhost ~]#[root@localhost ~]# pidof java1973[root@localhost ~]# cat /proc/1973/status | grep VmRSSVmRSS: 1166852 kB由上⾯可知,nginx服务进程的两个pid所占物理内存为"2652+1264=3916k"3、查看本机所有进程的内存占⽐之和# cat mem_per.sh[root@localhost ~]# cat mem_per.sh#!/bin/bashps auxw|awk '{if (NR>1){print $4}}' > /opt/mem_listawk '{MEM_PER+=$1}END{print MEM_PER}' /opt/mem_list[root@localhost ~]#[root@localhost ~]# chmod755 mem_per.sh[root@localhost ~]#[root@localhost ~]# sh mem_per.sh64.4[root@localhost ~]#脚本配置解释:ps -auxw|awk '{print $3}' 表⽰列出本机所有进程的cpu利⽤率情况,结果中第⼀⾏带"%CPU"字符ps -auxw|awk '{print $4}' 表⽰列出本机所有进程的内存利⽤率情况,结果中第⼀⾏带"%MEM"字符ps auxw|awk '{if (NR>1){print $4}} 表⽰将"ps auxw"结果中的第⼀⾏过滤(NR>1)掉,然后打印第4⾏⼆、查看CPU使⽤情况1、toptop后键⼊P看⼀下谁占⽤最⼤# top -d 5周期性的查询CPU使⽤信息每5秒刷新⼀次top - 02:37:55 up 4 min, 1 user, load average: 0.02, 0.10, 0.05Tasks: 355 total, 1 running, 354 sleeping, 0 stopped, 0 zombie%Cpu(s): 3.0 us, 2.8 sy, 0.0 ni, 94.2id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st# us:表⽰⽤户空间程序的cpu使⽤率(没有通过nice调度)# sy:表⽰系统空间的cpu使⽤率,主要是内核程序。
Linux系统查看CPU使用率、内存使用率、磁盘使用率

Linux系统查看CPU使⽤率、内存使⽤率、磁盘使⽤率⼀、查看CPU使⽤率1. top 命令[root@sss ~]# toptop - 16:54:38 up 7 days, 5:13, 3 users, load average: 0.00, 0.01, 0.05Tasks: 77 total, 2 running, 75 sleeping, 0 stopped, 0 zombie%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stKiB Mem : 1882232 total, 813020 free, 330164 used, 739048 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 1386608 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND17215 root 0 -20 127504 12176 9560 S 0.7 0.6 21:46.45AliYunDun2770 root 20 0 573932 17232 6088 S 0.3 0.9 1:11.38tuned1 root 20 0 43548 3844 2588 S 0.0 0.2 0:06.54systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd3 root 20 0 0 0 0 S 0.0 0.0 0:08.75 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H... ...123456789101112131415top命令可以看到总体的系统运⾏状态和cpu的使⽤率。
%us:表⽰⽤户空间程序的cpu使⽤率(没有通过nice调度)%sy:表⽰系统空间的cpu使⽤率,主要是内核程序。
JAVA获得CPU和内存的使用情况的两种方法

JAVA获得CPU和内存的使用情况的两种方法在Java中,可以使用不同的方法来获取CPU和内存的使用情况。
这些信息对于优化程序性能和资源管理非常重要。
以下是两种常用的方法:1. 使用Java Management Extensions(JMX):Java提供了JMX API来监控和管理Java应用程序。
通过使用JMX,可以获取有关系统资源的详细信息,包括CPU和内存使用情况。
a)获取CPU使用情况:要获取CPU使用情况,可以使用ng.management包中的ThreadMXBean接口。
ThreadMXBean接口提供了许多有用的方法,例如getThreadCpuTime(来获取线程的CPU时间。
可以使用以下代码来获取整个系统的CPU使用情况:```javaimport ng.management.ManagementFactory;import ng.management.ThreadMXBean;public class CPUMonitorpublic static void main(String[] args)ThreadMXBean threadMXBean =ManagementFactory.getThreadMXBean(;long cpuTime = threadMXBean.getCurrentThreadCpuTime(;System.out.println("CPU Time: " + cpuTime);}}```b)获取内存使用情况:要获取内存使用情况,可以使用ng.management包中的MemoryMXBean和MemoryUsage类。
MemoryMXBean提供了获取内存使用情况的方法,而MemoryUsage类用于表示内存使用情况。
以下是一个示例代码:```javaimport ng.management.ManagementFactory;import ng.management.MemoryMXBean;import ng.management.MemoryUsage;public class MemoryMonitorpublic static void main(String[] args)MemoryMXBean memoryMXBean =ManagementFactory.getMemoryMXBean(;MemoryUsage heapMemoryUsage =memoryMXBean.getHeapMemoryUsage(;MemoryUsage nonHeapMemoryUsage =memoryMXBean.getNonHeapMemoryUsage(;System.out.println("Heap Memory Usage: " + heapMemoryUsage);System.out.println("Non-Heap Memory Usage: " + nonHeapMemoryUsage);}}```2. 使用操作系统命令和Java进程的ManagementFactory:Java还提供了一种通过执行操作系统命令并解析结果来获取CPU和内存使用情况的方法。
使用Linux终端监测系统资源使用情况

使用Linux终端监测系统资源使用情况Linux终端是一种强大的工具,可用于监测系统资源的使用情况。
通过使用Linux终端,我们可以实时地查看系统的CPU、内存、磁盘等资源的使用情况,以便及时调整和优化系统性能。
本文将介绍如何使用Linux终端监测系统资源使用情况,以及一些常用的命令和技巧。
一、查看CPU使用情况在Linux终端上,我们可以使用top命令来查看系统的CPU使用情况。
要打开终端并输入top命令,然后按回车键。
top命令会显示一个实时的系统监视器,其中包含各个进程的CPU使用率、内存使用率等信息。
按下键盘上的“q”键可以退出top命令。
二、查看内存使用情况使用free命令可以查看系统的内存使用情况。
在终端上输入free命令,然后按回车键。
free命令将显示系统的总内存、已使用的内存、空闲的内存以及缓冲区和缓存的内存情况。
此外,我们还可以通过top命令查看进程的内存使用情况。
三、查看磁盘使用情况使用df命令可以查看系统的磁盘使用情况。
在终端上输入df命令,然后按回车键。
df命令将显示系统上各个磁盘分区的总容量、已使用的容量、剩余容量以及使用百分比。
如果想要查看某个具体目录的磁盘使用情况,可以在df命令后加上该目录的路径。
四、查看网络使用情况使用ifconfig命令可以查看系统的网络接口和IP地址。
在终端上输入ifconfig命令,然后按回车键。
ifconfig命令将显示系统上各个网络接口的IP地址、子网掩码、广播地址等详细信息。
此外,我们还可以使用netstat命令来查看系统的网络连接情况。
五、查看进程使用情况使用ps命令可以查看系统上运行的进程。
在终端上输入ps命令,然后按回车键。
ps命令将显示系统上所有进程的详细信息,包括进程ID、进程名称、运行时间等。
如果想要按照特定的条件进行过滤显示,可以结合使用grep和ps命令。
六、查看日志文件系统的日志文件记录了系统各个方面的运行情况,通过查看日志文件可以了解系统的运行状态和故障原因。
【Java】+获取Linux服务器的CPU、内存使用率

【Java】+获取Linux服务器的CPU、内存使⽤率package montool;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import montool.file.ZgxFileUtil;import ng3.tuple.Pair;import org.apache.log4j.Logger;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.math.BigDecimal;import java.util.ArrayList;import java.util.List;/*** @author* @version 1.0* @time 2019/7/15 20:28* <p>* 类功能说明:* 1、连接服务器* 2、执⾏Linux⽇志查询命令,返回查询后的⽇志字符串(以⾏为单位)*/public class LogAuto {private static Logger log;private Session ssh;private String hostName;private String userName;private String password;private int port;/*** 连接服务器** @param hostname 服务器IP* @param port 端⼝* @param username 账号* @param password 密码*/public LogAuto(String hostname, int port, String username, String password) {this.hostName = hostname;this.port = port;erName = username;this.password = password;this.log = ZgxLoggerUtil.getLoger(LogAuto.class);}/*** 通过Linux命令查询⽇志内容** @param command Linux⽇志查询命令* @return返回根据命令查出的⽇志内容*/public List<String> execCom(String command) {Connection conn = new Connection(this.hostName, this.port);createConnection(conn);List<String> logContent = new ArrayList<String>();try {ssh.execCommand(command);} catch (IOException e) {e.printStackTrace();}//将Terminal屏幕上的⽂字全部打印出来InputStream is = new StreamGobbler(ssh.getStdout());BufferedReader brs = new BufferedReader(new InputStreamReader(is));while (true) {String line = null;try {line = brs.readLine();} catch (IOException e) {e.printStackTrace();}if (line == null) {break;}// System.out.println(line);logContent.add(line);}return logContent;}private void createConnection(Connection connection) {//创建连接try {connection.connect();} catch (IOException e) {e.printStackTrace();}try {connection.authenticateWithPassword(erName, this.password);} catch (IOException e) {e.printStackTrace();}//创建与服务器的会话节点try {setSsh(connection.openSession());} catch (IOException e) {e.printStackTrace();}}private void setSsh(Session ssh) {this.ssh = ssh;}private Session getSsh() {return ssh;}/*** 功能:获取指定服务器在当前时间的内存使⽤率** @param logAuto* @return返回使⽤率(百分⽐)*/public static double getMemoryRate(LogAuto logAuto) {String shell = String.format("%s", "free"); // 多个命令⽤“;”隔开List<String> listResult = logAuto.execCom(shell);// 打印shell命令执⾏后的结果for (int i = 0; i < listResult.size(); i++) {System.out.println(listResult.get(i));}// 提取内存数据(第⼆⾏)List<String> mem = ZgxStringUtil.splitString(listResult.get(1), " ");Integer usedMemory = Integer.valueOf(mem.get(2));Integer allMemory = Integer.valueOf(mem.get(1));(String.format("usedMemory=%s;allMemory=%s", usedMemory, allMemory));// 计算内存使⽤率(已使⽤内存/总内存)double f1 = new BigDecimal((float) usedMemory / allMemory).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() * 100; (String.format("内存使⽤率=%s%s", f1, "%"));return f1;}private static Pair getCpuData(LogAuto logAuto) {String shell = String.format("%s", "cat /proc/stat"); // 多个命令⽤“;”隔开List<String> listResult = logAuto.execCom(shell);// 打印shell命令执⾏后的结果for (int i = 0; i < listResult.size(); i++) {System.out.println(listResult.get(i));}// 提取CPU数据(第⼀⾏)List<String> mem = ZgxStringUtil.splitString(listResult.get(0), " ");mem.remove(0);Long allTime1 = 0L;for (int i = 0; i < mem.size(); i++) {allTime1 += Long.valueOf(mem.get(i));}System.out.println(String.format("CPU使⽤总时间=%s;idle=%s", allTime1, mem.get(3)));return Pair.of(allTime1, mem.get(3));}/*** 功能:获取指定服务器在当前时间的CPU使⽤率** @param logAuto* @return返回使⽤率(百分⽐)*/public static double getCpuRate(LogAuto logAuto) {Pair cpuData1 = getCpuData(logAuto);try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}Pair cpuData2 = getCpuData(logAuto);// step1 计算两次的cpu总时间Long allTime = Long.valueOf(cpuData2.getLeft().toString()) - Long.valueOf(cpuData1.getLeft().toString());// step2 计算两次的cpu剩余时间Long idle = Long.valueOf(cpuData2.getRight().toString()) - Long.valueOf(cpuData1.getRight().toString());// step3 计算两次的cpu使⽤时间Long used = allTime - idle;// step4 计算cpu使⽤率(cpu使⽤率 = 使⽤时间 / 总时间 * 100%)double f1 = new BigDecimal((float) used / allTime).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() * 100; (String.format("CPU使⽤率=%s%s", f1, "%"));return f1;}public static void main(String[] args) {LogAuto logAuto = new LogAuto("服务器IP", 端⼝号, "账号", "密码");getMemoryRate(logAuto);getCpuRate(logAuto);String[] header = {"时间,CPU使⽤率,内存使⽤率"};List<String[]> content = new ArrayList<>();// 每分钟获取⼀次服务器CPU、内存使⽤率(获取30次)for (int i = 0; i < 30; i++) {String[] data = {ZgxDateUtil.getNowDate("yyyy-MM-dd HH:mm:ss"), String.valueOf(getCpuRate(logAuto)), String.valueOf(getMemoryRate(logAuto))};content.add(data);ZgxFileUtil.writeCsv("服务器性能数据.csv", header, content);try {Thread.sleep(1000 * 60);} catch (InterruptedException e) {e.printStackTrace();}}}}。
linux下实现CPU使用率和内存使用率获取方法

linux下实现CPU使⽤率和内存使⽤率获取⽅法想获取⼀下⽬标机运⾏时linux系统的硬件占⽤情况,写了这⼏个⼩程序,以后直接⽤了。
⽅法就是读取proc下的⽂件来获取了。
cpu使⽤率: /proc/stat ,内存使⽤情况: /proc/meminfo看程序:typedef struct PACKED //定义⼀个cpu occupy的结构体{char name[20]; //定义⼀个char类型的数组名name有20个元素unsigned int user; //定义⼀个⽆符号的int类型的userunsigned int nice; //定义⼀个⽆符号的int类型的niceunsigned int system;//定义⼀个⽆符号的int类型的systemunsigned int idle; //定义⼀个⽆符号的int类型的idle}CPU_OCCUPY;typedef struct PACKED //定义⼀个mem occupy的结构体{char name[20]; //定义⼀个char类型的数组名name有20个元素unsigned long total;char name2[20];unsigned long free;}MEM_OCCUPY;get_memoccupy (MEM_OCCUPY *mem) //对⽆类型get函数含有⼀个形参结构体类弄的指针O{FILE *fd;int n;char buff[256];MEM_OCCUPY *m;m=mem;fd = fopen ("/proc/meminfo", "r");fgets (buff, sizeof(buff), fd);fgets (buff, sizeof(buff), fd);fgets (buff, sizeof(buff), fd);fgets (buff, sizeof(buff), fd);sscanf (buff, "%s %u %s", m->name, &m->total, m->name2);fgets (buff, sizeof(buff), fd); //从fd⽂件中读取长度为buff的字符串再存到起始地址为buff这个空间⾥sscanf (buff, "%s %u", m->name2, &m->free, m->name2);fclose(fd); //关闭⽂件fd}int cal_cpuoccupy (CPU_OCCUPY *o, CPU_OCCUPY *n){unsigned long od, nd;unsigned long id, sd;int cpu_use = 0;od = (unsigned long) (o->user + o->nice + o->system +o->idle);//第⼀次(⽤户+优先级+系统+空闲)的时间再赋给odnd = (unsigned long) (n->user + n->nice + n->system +n->idle);//第⼆次(⽤户+优先级+系统+空闲)的时间再赋给odid = (unsigned long) (n->user - o->user); //⽤户第⼀次和第⼆次的时间之差再赋给idsd = (unsigned long) (n->system - o->system);//系统第⼀次和第⼆次的时间之差再赋给sdif((nd-od) != 0)cpu_use = (int)((sd+id)*10000)/(nd-od); //((⽤户+系统)乖100)除(第⼀次和第⼆次的时间差)再赋给g_cpu_usedelse cpu_use = 0;//printf("cpu: %u/n",cpu_use);return cpu_use;}get_cpuoccupy (CPU_OCCUPY *cpust) //对⽆类型get函数含有⼀个形参结构体类弄的指针O{FILE *fd;int n;char buff[256];CPU_OCCUPY *cpu_occupy;cpu_occupy=cpust;fd = fopen ("/proc/stat", "r");fgets (buff, sizeof(buff), fd);sscanf (buff, "%s %u %u %u %u", cpu_occupy->name, &cpu_occupy->user, &cpu_occupy->nice,&cpu_occupy->system, &cpu_occupy->idle);fclose(fd);}int main(){CPU_OCCUPY cpu_stat1;CPU_OCCUPY cpu_stat2;MEM_OCCUPY mem_stat;int cpu;//获取内存get_memoccupy ((MEM_OCCUPY *)&mem_stat);//第⼀次获取cpu使⽤情况get_cpuoccupy((CPU_OCCUPY *)&cpu_stat1);sleep(10);//第⼆次获取cpu使⽤情况get_cpuoccupy((CPU_OCCUPY *)&cpu_stat2);//计算cpu使⽤率cpu = cal_cpuoccupy ((CPU_OCCUPY *)&cpu_stat1, (CPU_OCCUPY *)&cpu_stat2);return 0;}我们在搞性能测试的时候,对后台服务器的CPU利⽤率监控是⼀个常⽤的⼿段。
Linux查看服务器内存、磁盘、cpu、网络占用、端口占用情况

Linux查看服务器内存、磁盘、cpu、⽹络占⽤、端⼝占⽤情况1、查看物理CPU个数:catcat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l2、查看服务器CPU内核个数:cat 每个物理CPU中core的个数(即核数)cat /proc/cpuinfo | grep "cpu cores" | uniq3、服务器内存使⽤情况:freefree -m --查看内存,不带单位free -h --查看内存使⽤情况,带单位,显⽰查看结果(对于新⼿来说这个更详细些)total:总计物理内存的⼤⼩used:已使⽤内存free:可⽤内存Shared:多个进程共享的内存总额Buffers/cached:磁盘缓存的⼤⼩缓存是可以清除的4.top --可以查看服务器各个进程情况uptime -- 可以查看机器多少条没有重启了,⼀共多少个⽤户退出top :q 或者 ctrl+c每个字段的解读Procs(进程):r: 运⾏队列中进程数量,这个值也可以判断是否需要增加CPU。
(长期⼤于1)b: 等待IO的进程数量Memory(内存):swpd: 使⽤虚拟内存⼤⼩free: 空闲物理内存⼤⼩buff: ⽤作缓冲的内存⼤⼩cache: ⽤作缓存的内存⼤⼩Swap:si: 每秒从交换区写到内存的⼤⼩,由磁盘调⼊内存so: 每秒写⼊交换区的内存⼤⼩,由内存调⼊磁盘IO:bi: 每秒读取的块数bo: 每秒写⼊的块数system:in: 每秒中断数,包括时钟中断。
cs: 每秒上下⽂切换数。
CPU(以百分⽐表⽰):us: ⽤户进程执⾏时间百分⽐(user time)sy: 内核系统进程执⾏时间百分⽐(system time)wa: IO等待时间百分⽐id: 空闲时间百分⽐5.查看端⼝占⽤情况命令为 lsof -i将会显⽰命令 + 进程ID + 进程所属⽤户, 以及监听的协议、状态等信息注意: 若提⽰⽆此命令, 则需要安装, 命令如下:[root@onepiece ~]# lsof -i-bash: lsof: command not found[root@onepiece ~]# yum install -y lsof......Installed:lsof.x86_64 0:4.87-6.el7Complete!# 出现上述的 "Complete!",说明安装成功。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Java 获取Linux 和Window 系统CPU、内存和磁盘总使用率的情况
2017/05/08 0 这是一个工具类,获取的内容:
CPU 使用率:得到的是当前CPU 的使用情况,这是算出的是两次500 毫秒时间
差的CPU 使用率
内存使用率:[1 - 剩余的物理内存/(总的物理内存+虚拟内存) ] * 100
磁盘总使用率:[1 - 磁盘空余大小/磁盘总大小] * 100
下面开始贴代码:使用暂时没有发现什么问题,如果有问题,咱们可以一起讨论package com.util;
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.LineNumberReader;import ng.management.ManagementFactory;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer;
import org.apache.log4j.Logger;
import com.sun.management.OperatingSystemMXBean;
public class ComputerMonitorUtil {
private static String osName = System.getProperty(“”);private static final int CPUTIME = 500;private static final int PERCENT = 100;private static final int FAULTLENGTH = 10;private static final Logger logger = Logger.getLogger(ComputerMonitorUtil.class);
/** * 功能:获取Linux 和Window 系统cpu 使用率* */public static double getCpuUsage() {// 如果是window 系统if (osName.toLowerCase().contains(“windows”)||osName.toLowerCase().contains(“win”)) {try {String procCmd = System.getenv(“windir”)+“//system32//wbem//wmic.exe process get
Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTi。