设为首页 加入收藏

TOP

编程获取Linux的cpu占用率和mem使用情况
2014-11-24 01:25:48 来源: 作者: 【 】 浏览:0
Tags:编程 获取 Linux cpu 占用 mem 使用 情况

Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下:


一、使用ps查看进程的资源占用


ps -aux


查看进程信息时,第三列就是CPU占用。


[root@localhost utx86]# ps -aux | grep my_process
Warning: bad syntax, perhaps a bogus '-' See /usr/share/doc/procps-3.2.7/FAQ
root 14415 3.4 0.9 37436 20328 pts/12 SL+ 14:18 0:05 ./my_process
root 14464 0.0 0.0 3852 572 pts/3 S+ 14:20 0:00 grep my_process


每一列含义如下


USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND


即my_process进程当前占用cpu 3.4%, 内存0.9%


二、top动态查看系统负荷


top -n 1


显示后退出


[root@localhost utx86]# top -n 1
top - 14:23:20 up 5:14, 14 users, load average: 0.00, 0.04, 0.01
Tasks: 183 total, 1 running, 181 sleeping, 1 stopped, 0 zombie
Cpu(s): 1.8%us, 1.4%sy, 0.0%ni, 95.8%id, 0.7%wa, 0.1%hi, 0.2%si, 0.0%st
Mem: 2066240k total, 1507316k used, 558924k free, 190472k buffers
Swap: 2031608k total, 88k used, 2031520k free, 1087184k cached


1、获取cpu占用情况


[root@localhost utx86]# top -n 1 |grep Cpu
Cpu(s): 1.9%us, 1.3%sy, 0.0%ni, 95.9%id, 0.6%wa, 0.1%hi, 0.2%si, 0.0%st


解释:1.9%us是用户占用cpu情况


1.3%sy,是系统占用cpu情况


得到具体列的值:

[root@localhost utx86]# top -n 1 |grep Cpu | cut -d "," -f 1 | cut -d ":" -f 2
1.9%us
[root@localhost utx86]# top -n 1 |grep Cpu | cut -d "," -f 2
1.3%sy


2、获得内存占用情况

[root@localhost utx86]# top -n 1 |grep Mem
Mem: 2066240k total, 1515784k used, 550456k free, 195336k buffers


获得内存情况指定列


[root@localhost c++_zp]# top -n 1 |grep Mem | cut -d "," -f 1 | cut -d ":" -f 2
2066240k total
[root@localhost c++_zp]# top -n 1 |grep Mem | cut -d "," -f 2
1585676k used


三、编程实现

现在可以通过程序将cpu使用率、内存使用情况保存到文件中
// test.cpp
#include
#include
#include
int main()
{
system("top -n 1 |grep Cpu | cut -d \",\" -f 1 | cut -d \":\" -f 2 >cpu.txt");
system("top -n 1 |grep Cpu | cut -d \",\" -f 2 >>cpu.txt");
system("top -n 1 |grep Mem | cut -d \",\" -f 1 | cut -d \":\" -f 2 >>cpu.txt");
system("top -n 1 |grep Mem | cut -d \",\" -f 2 >>cpu.txt");
return 0;
}


编译、运行:

[root@localhost study]# g++ test.cpp
[root@localhost study]# ./a.out
[root@localhost study]# cat cpu.txt
2.1%us
1.5%sy
2066240k total
1619784k used


可见,信息已经保存到文件中了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JavaFX 推出移动版 下一篇高可移植性J2ME软件开发笔记

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: