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
分享到:
相关推荐
// 读出进程自身CPU占用率 pcTmp = strtok(NULL, ""); printf("CPU=%s%%\n", pcTmp); // 读出进程自身MEM占用率 pcTmp = strtok(NULL, ""); printf("MEM=%s%%\n", pcTmp); break; } pclose(fp); // 关闭...
* %CPU:进程占用 CPU 的使用率 * %MEM:进程使用的物理内存和总内存的百分比 * TIME+:该进程启动后占用的总的 CPU 时间,即占用 CPU 使用时间的累加值 * COMMAND:进程启动命令名称 2. 使用 pmap 命令 pmap 命令...
这里展示了如何计算 CPU、内存使用率,以及 RSS 和 VSZ(进程实际占用的物理内存大小和虚拟内存大小)。 ```sh PRC=$(ps aux | grep thread1 | grep -v grep | grep -v SCREEN | awk '{print "CPU:" $3 "%,MEM:" $4...
`USER`列显示进程所有者,`PID`是进程ID,`%CPU`和`%MEM`分别表示CPU和内存使用率,`VSZ`和`RSS`分别是虚拟内存和物理内存占用,`TTY`表示进程所在的终端。 此外,Linux中还有其他重要命令: - **sudo**:允许用户...
它提供了丰富的选项和自定义字段,可以按需查看不同进程的详细信息,包括PID(进程ID)、USER(进程所有者)、PR(优先级)、NI(Nice值)、VIRT(虚拟内存大小)、RES(物理内存大小)、SHR(共享内存)、%CPU(CPU...
Linux下的串口驱动设计已经十分成熟和完善,为开发者提供了统一的编程接口。串口驱动的核心工作在于针对不同的串口集成电路(IC)来实现特定的配置宏,这些配置宏涉及到读写操作、中断的开启与关闭(例如发送与接收...
1. 定义获取进程性能数据的函数,例如,使用`psutil`库来获取CPU利用率、内存占用、磁盘I/O等信息。 2. 实现监控线程,定期调用上述函数并更新监控结果。 3. 设计报警机制,如当CPU利用率超过预设阈值或者内存低于...
一旦集成成功,就可以通过调用SIGAR的函数获取系统信息,例如`sigar_cpu_usage_get()`用于获取CPU使用情况,`sigar_mem_get()`获取内存信息。 接下来,需要编写一个后台服务或者定时任务,定期调用SIGAR接口获取...
- **性能监控**:显示系统资源占用情况,如 CPU 使用率、内存占用量等,并采用进度条形式直观展示。 **代码实现解析** - **核心头文件引入**:项目首先定义了 GTK 的某些特性,并引入了必要的头文件,如 `...
这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台...
1. **实时进程列表**:mytop会持续更新当前系统中的活跃进程列表,显示每个进程的PID(进程ID)、用户、CPU占用率、内存占用、运行时间以及命令行等信息。 2. **排序与过滤**:用户可以根据需要对进程按CPU使用率、...
每个字段都有特定含义,如%CPU表示CPU使用率,%MEM表示内存使用率,TIME+表示进程占用CPU的时间,以及CMD或COMMAND列显示了进程的启动命令。 C++程序在运行时,可能会遇到多线程的情况。这时,`ps` 命令配合 `grep`...