Linux下的常用性能查询命令top、vmstat、gprof、pidstat之对比

(1)查看各个CPU核的使用情况

sudo top -d 1

进入之后,按1,会出现下面的CPU使用情况,其中us列反映了各个CPU核的使用情况,百分比大说明该核在进行紧张的任务。



(2)查看哪个进程在哪个CPU核上运行

sudo top -d 1

进入之后,依次按f、j和空格,会出现如下(其中P列指示的是该进程最近使用的CPU核,如进程mencoder的P列为7,则表示mencoder最近在核7上运行,对于多线程甚至单线程的进程,在不同时刻会使用不同的CPU Core):



(3)vmstat查看整体的CPU使用情况

sudo vmstat 2 3

参数2表示每个2秒显示一下结果,3表示显示结果的数目。



cs列表示每秒上下文切换次数,us表示用户CPU时间。


(4)Intel工具powertop

sudo powertop

会显示各个CPU核的使用百分比。


(5)gprof分析一个程序

假设程序源文件为speedup-example.cpp

gcc speedup-example.cpp -o speedup-example -pg(注意-pg)

执行程序./speedup-example,会在当前目录生成gmon.out,这个文件是我们查看程序运行情况的来源,接下来用gprof命令查看它:

gprof -b speedup-example gmon.out > Results.txt

这样这个程序的运行信息就在Results.txt中了。



(6)pidstat实时查看一个进程的CPU使用情况及上下文切换情况

首先安装

sudo apt-get install sysstat

接下来使用pidstat(下面的-p是与进程号连用,用于显示特定进程的性能信息,之后还可以指定每隔几秒显示,一共显示几条):

  • pidstat 5 -p 15488(你要追踪的进程的pid)

这样就能实时显示15488进程的CPU使用情况:



  • pidstat -w —— 显示每个进程的上下文切换情况
pidstat -w -p 15488 2 —— 每隔2秒显示15488进程的上下文切换情况:


cswch/s —— 每秒该进程产生的voluntary context switches总数。voluntary context switches出现在访问一个已经被占用的资源,从而不得不挂起(即我们通常说的Synchronization Context Switches)

nvcswch/s —— 每秒该进程产生的involuntary context switches总数。involuntary  context switches发生在自己的时间片用完或被更高的优先级抢占(包含Preemption Context Switches)



  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值