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

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

转自:blog.sina.com.cn/simul1981 作者:开心人

### 回答1: 要查看Linux系统中线程的CPU占用率,您可以使用以下命令: ``` top -Hp <pid> ``` 其中,`<pid>`是线程的进程ID。运行此命令后,您将看到类似于以下输出的结果: ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 user 20 0 100000 1000 1000 R 10.0 0.1 0:01.00 example_thread ``` 在输出结果中,`%CPU`一列显示了线程占用的CPU百分比。 ### 回答2: 在 Linux 系统中,可以使用以下命令来查看线程的 CPU 占用率: 1. top 命令 top 命令是一个常用的性能监控工具,可以用来实时查看系统的运行状态。要查看线程的 CPU 占用率,可以按下“Shift+H”键,这将按线程 ID 列表显示各线程的 CPU 占用率。 2. ps 命令 ps 命令可以查看系统的进程状态,通过加上参数“-L”可以查看进程的线程信息。以下是使用 ps 命令查看指定进程 ID 的线程信息及其 CPU 占用率的命令: ``` ps -mp <PID> -o THREAD,tid,time,%cpu ``` 其中 PID 为进程 ID,tid 为线程 ID,time 为线程运行时间,%cpu 为线程 CPU 占用率。 3. perf 命令 perf 命令是一个性能分析工具,可以用来对程序进行详细的性能分析。以下是使用 perf 命令查看指定线程 ID 的 CPU 占用率的命令: ``` perf top -p <TID> ``` 其中 TID 为线程 ID。 除了以上几种命令,还有一些第三方工具可以用于查看线程的 CPU 占用率,例如 htop、glances 等。不同的工具具有不同的特点,用户可以根据需要选择使用。 ### 回答3: 使用Linux查看线程CPU占用率的方法有多种。这里列出一些比较常用的方法。 1. top命令 top命令可以实时监视系统的进程和资源使用情况,也可以查看线程的CPU占用率。在top命令中按下H键,可以将线程展开显示,并按照CPU占用率从高到低排序。可以使用PID或者线程名称来定位需要查看的线程。 2. ps命令 ps命令可以显示系统中的进程信息,同时也可以查看线程的CPU占用率使用ps命令时,可以使用pidstat或ps -Lf命令来查看线程的CPU占用率。 3. htop命令 htop是top命令的改良版,可以方便地查看线程的CPU占用率。启动htop后按下H键,即可展开显示线程信息,并按照CPU占用率排序。 4. pidstat命令 pidstat命令可以显示某个进程或线程的CPU使用情况,包括CPU占用率、用户态和内核态占用比例、IO使用情况等。可以使用pidstat -u -p [pid] -t命令来查看某个线程的CPU占用率。 总之,在Linux中查看线程CPU占用率有很多种方法,可以根据具体需求选择合适的命令和参数来查看所需信息。无论是使用top、ps、htop还是pidstat,都能够得到准确的线程CPU占用率信息,方便用户进行优化和调试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值