`

获取一般linux系统的系统信息,java获取单个进程的CPU使用率

阅读更多
引用

一般linux系统内用这些命令获取系统信息:
<info name="cpuCmd" value="top -b -n 1|grep Cpu"></info>
<info name="memCmd" value="top -b -n 1|grep Mem"></info>
<info name="spaceCmd" value="df -h|sed -n '3,$p'"></info><!-- 需要检查系统df命令,是否'3,$p'第三行开始是磁盘信息 -->

----------------------------------------------
获取单个进程CPU,内存的占用率

cmd脚本命令:top -b -n 1 -p $pid | sed '$d' | sed -n '$p'
上面的$pid,就是进程的PID


/**
	 *  获取当前进程的CPU占有率
	 *  cmd:top -b -n 1 -p $pid | sed '$d' | sed -n '$p' | awk '{print $9}'
	  * @Title: getProcCpu
	  * @Description: TODO
	  * @author:zjz
	  * @create-date:2012-7-16 下午6:22:53
	  * @modify-date:2012-7-16 下午6:22:53
	  * @param @param pid
	  * @param @return    
	  * @return double    
	  * @throws
	*
	 */
public double getProcCpu(int pid){
		Process process=null;
		BufferedReader br = null;
		try {
			if("".equals(procCpuShell))return 0;
			procCpuShell = procCpuShell.replaceAll("\\$pid", pid+"");
			String[] cmd = new String[]{"/bin/sh","-c",procCpuShell};
			process = Runtime.getRuntime().exec(cmd);
			int resultCode = process.waitFor();
			LogCvt.debug("执行结果PID:"+pid+":"+resultCode);
			br = new BufferedReader(new InputStreamReader(process.getInputStream()));
			String line = null;
			while((line = br.readLine())!=null ){
				Double cpu = Double.parseDouble(line);
				if(cpu>100)cpu = cpu/10;//刚启动会出现CPU100多情况,则处理除于10
			    return cpu;
			}
		} catch (Exception e) {
			LogCvt.error("执行获取进程CPU使用率错误",e);
		}finally{
			try{
				if(process!=null)process.destroy();
				if(br!=null)br.close();
			}catch(Exception e){
				LogCvt.error(e.getMessage());
			}
			
		}
		return 0.0;
	}


如果要获取单个进程使用的内存可以这样:
        int mb = 1024*1024;    
        // 可使用内存    
        long totalMemory = Runtime.getRuntime().totalMemory() / mb;    
        // 剩余内存    
        long freeMemory = Runtime.getRuntime().freeMemory() / mb;
        // 最大可使用内存    
        long maxMemory =Runtime.getRuntime().maxMemory() / mb;    

分享到:
评论

相关推荐

    获取单个进程CPU使用率

    get a process cpu and memory usage windows获取单个进程CPU使用率,内存使用率 网上一般是获取所有进程的,获取单个进程的不好找.

    获取进程cpu使用率

    可以获取单个多个进程cpu的使用率,ms没有提供获取cpu使用率的方法,目前有几种方法,1。通过cpu时间计算,2。通过windows性能计数器(PDH库) 这里提供了第一种方法,由于第二种方法问题较多,而且不能保证系统中...

    使用C++获取指定线程的CPU使用率

    简单例子说明如何使用C++实现获取指定线程的CPU使用率

    aix环境查看最耗CPU进程方法

    aix环境查看最耗CPU进程的方法的命令

    显示某进程的CPU占用率

    显示某进程的CPU占用率 显示单个进程CPU占用率

    java 提取单个字符

    java 提取单个字符 java 提取单个字符

    Python获取单个程序CPU使用情况趋势图

    本文定位:已将CPU历史数据存盘,等待可视化进行分析,可暂时没有思路。 前面一篇文章(//www.jb51.net/article/61956.htm)提到过在linux下如何用python将top命令的结果进行存盘,本文是它的后续。 python中我们...

    java调用linux命令、脚本工具类.zip

    Java程序调用linux命令、脚本,支持程序在服务器上使用linux命令。工具类为:ProcessUtil,支持单个命令和批量命令执行函数,同时在工具类中添加了getFileLineNumByCmd函数支持通过linux命令获取文件行数的样例。

    测试单个线程的CPU使用率

    程序比较简单,创建一个工作线程和一个监测线程,监控单个线程的CPU使用率

    linux下运行java单个程序

    linux下运行java方法,1.安装jdk 2.javac Helloword.java 3.java Helloword

    Java图书馆管理系统附全代码课程设计报告完整版.docx

    6)能够通过读者基本信息(包括:证号、姓名、性别、系名、年级)单个或以AND方式组合多个条件查询读者信息 Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第5页。 7)对于每位读者除可查看其基本...

    修改Windows系统单进程使用的内存上限

    修改Windows系统单进程使用的内存上限,例:某程序调用内存因WINDOWS系统上限为2G,为使该程序完全的使用4GB内存,可以通过文档中的方法修改

    Linux系统下Java与Matlab混合编程及应用.pdf

    Linux系统下Java与Matlab混合编程及应用.pdf

    修改linux进程可打开的文件数的限制open files

    修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行

    操作系统实验 体验linux基本操作 子进程的创建

    2. 测试Linux系统调用exec()、fork()、exit()等的使用。 二、实验准备: 通过研习参考书《Linux程序设计》(第4版)(N.Matthew,R. Stones(译者:陈健,宋健建),人民邮电出版社,2010)第11章“进程和信号”的内容,...

    linux优化笔记

    操作系统级 CPU 目前大部分CPU在同一时间只能运行...由于处理器寻址范围的限制,在32位linux操作系统上,应用程序单个进程最大只能使用2GB的内存。 可能出现内存瓶颈的有打印服务器、数据库服务器、静态web服务器等。

    深刻理解Linux进程间通信

    0. 0.序 linux下的进程通信手段基本上是从...改进和扩充,形成了“systemVIPC”,通信进程局限在单个计算机内;后者则跳过了该限制, 形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了下来,如图示:

    java实现学生管理系统(控制台)

    编写学生管理系统,学生信息(学员信息:学号、姓名、年龄、性别、家庭住址,其他属性可以自行给定)以对象方式存入数组中,利用控制台显示; 需求:1.用户需要登陆,如果无法登陆的用户需要先注册(登陆,注册,...

    java代码实现单个或多个文件压缩成rar包

    java代码实现单个或多个文件压缩成rar包,本地要安装winRar插件。

    linux的最大进程句柄数设置

    linux的最大进程句柄数设置在Linux下,我们使用ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。

Global site tag (gtag.js) - Google Analytics