`
aideehorn
  • 浏览: 260719 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    linux使用管道命令执行ps获取cpu与内存占用率

    // 读出进程自身CPU占用率 pcTmp = strtok(NULL, ""); printf("CPU=%s%%\n", pcTmp); // 读出进程自身MEM占用率 pcTmp = strtok(NULL, ""); printf("MEM=%s%%\n", pcTmp); break; } pclose(fp); // 关闭...

    查看LINUX进程内存占用情况

    * %CPU:进程占用 CPU 的使用率 * %MEM:进程使用的物理内存和总内存的百分比 * TIME+:该进程启动后占用的总的 CPU 时间,即占用 CPU 使用时间的累加值 * COMMAND:进程启动命令名称 2. 使用 pmap 命令 pmap 命令...

    统计 cpu 内存 使用率的shell脚本代码

    这里展示了如何计算 CPU、内存使用率,以及 RSS 和 VSZ(进程实际占用的物理内存大小和虚拟内存大小)。 ```sh PRC=$(ps aux | grep thread1 | grep -v grep | grep -v SCREEN | awk '{print "CPU:" $3 "%,MEM:" $4...

    linux常用指令 个人总结

    `USER`列显示进程所有者,`PID`是进程ID,`%CPU`和`%MEM`分别表示CPU和内存使用率,`VSZ`和`RSS`分别是虚拟内存和物理内存占用,`TTY`表示进程所在的终端。 此外,Linux中还有其他重要命令: - **sudo**:允许用户...

    top.rar_top linux_trace

    它提供了丰富的选项和自定义字段,可以按需查看不同进程的详细信息,包括PID(进程ID)、USER(进程所有者)、PR(优先级)、NI(Nice值)、VIRT(虚拟内存大小)、RES(物理内存大小)、SHR(共享内存)、%CPU(CPU...

    linux串口驱动和中断共享

    Linux下的串口驱动设计已经十分成熟和完善,为开发者提供了统一的编程接口。串口驱动的核心工作在于针对不同的串口集成电路(IC)来实现特定的配置宏,这些配置宏涉及到读写操作、中断的开启与关闭(例如发送与接收...

    基于python的Linux系统指定进程性能监控

    1. 定义获取进程性能数据的函数,例如,使用`psutil`库来获取CPU利用率、内存占用、磁盘I/O等信息。 2. 实现监控线程,定期调用上述函数并更新监控结果。 3. 设计报警机制,如当CPU利用率超过预设阈值或者内存低于...

    Qt绘制的系统性能曲线图

    一旦集成成功,就可以通过调用SIGAR的函数获取系统信息,例如`sigar_cpu_usage_get()`用于获取CPU使用情况,`sigar_mem_get()`获取内存信息。 接下来,需要编写一个后台服务或者定时任务,定期调用SIGAR接口获取...

    ubuntu下用gtk实现仿windows资源管理器

    - **性能监控**:显示系统资源占用情况,如 CPU 使用率、内存占用量等,并采用进度条形式直观展示。 **代码实现解析** - **核心头文件引入**:项目首先定义了 GTK 的某些特性,并引入了必要的头文件,如 `...

    HP-UX进程察看工具mytop

    1. **实时进程列表**:mytop会持续更新当前系统中的活跃进程列表,显示每个进程的PID(进程ID)、用户、CPU占用率、内存占用、运行时间以及命令行等信息。 2. **排序与过滤**:用户可以根据需要对进程按CPU使用率、...

    ps

    每个字段都有特定含义,如%CPU表示CPU使用率,%MEM表示内存使用率,TIME+表示进程占用CPU的时间,以及CMD或COMMAND列显示了进程的启动命令。 C++程序在运行时,可能会遇到多线程的情况。这时,`ps` 命令配合 `grep`...

Global site tag (gtag.js) - Google Analytics