编程获取Linux的cpu占用率和mem使用情况

转载 2013年12月02日 14:54:35

编程获取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 <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

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


TOP-查看CPU使用率,系统资源使用

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 top -01:06:48 up 1:22, ...

linux top 日志输出

最近用LR做性能测试,遇到一个问题,就是当系统压力大时,用LR通近RPC协议监控压测服务器经常会挂掉,这样就监控不到服务器的性能情况。 同时,我一般用top在后台观察服务器性能,但是需要时刻查看,因为...

编程获取Linux的cpu占用率和 mem使用情况

Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下: 一、使用ps查看进程的资源占用 ps -aux 查看进程信息时,第三列就是CPU占用。 [root@localh...

编程获取Linux的cpu占用率和mem使用情况

Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下:一、使用ps查看进程的资源占用ps -aux查看进程信息时,第三列就是CPU占用。[root@localhost ut...

获取Linux的cpu占用率和mem使用情况

Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下: 一、使用ps查看进程的资源占用 ps -aux 查看进程信息时,第三列就是CPU占用。 [root@loca...

如何获取cpu占用率和 mem使用情况

一、shell下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下: 1. 使用ps查看进程的资源占用 ps -aux 查看进程信息时,第三列就是CPU占用。 [root@l...
  • dqjyong
  • dqjyong
  • 2013年01月16日 13:24
  • 6728

获取linux系统中mem占用率 -- awk使用详解

获取linux系统中cpu以及mem占用率 – awk使用详解本文通过实现获取系统的cpu以及mem占用率为切入点,主要对awk命令的一些常用用法进行分析。awk命令awk是一种编程语言,用于在lin...

Linux C++ 获取某一进程的CPU占用率以及内存占用情况

最近做监控相关东西的时候,需要获取某一进程CPU以及内存使用情况,就简单的写了一下,代码具体如下: #include #include #include #include #include ...

Linux下提供top、ps命令查看当前cpu、mem使用情况

Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下: 一、使用ps查看进程的资源占用 ps -aux 查看进程信息时,第三列就是CPU占用。 [root@localh...

top、ps命令查看当前cpu、mem使用情况

Linux下提供top、ps命令查看当前cpu、mem使用情况,简要介绍如下:一、使用ps查看进程的资源占用ps -aux查看进程信息时,第三列就是CPU占用。[root@localhost utx8...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程获取Linux的cpu占用率和mem使用情况
举报原因:
原因补充:

(最多只允许输入30个字)