Linux下提供top、ps命令查看当前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
?
每一列含义如下
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 <stdio.h>
#include <unistd.h>
#include <stdlib.h>
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
可见,信息已经保存到文件中了。
?
?
?
?