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

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

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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

sudo top -d 1

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

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


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

sudo top -d 1

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

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


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

sudo vmstat 2 3

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

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


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中了。

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


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

首先安装

sudo apt-get install sysstat

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

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

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

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


  • pidstat -w —— 显示每一个进程的上下文切换情况
pidstat -w -p 15488 2 —— 每隔2秒显示15488进程的上下文切换情况:
Linux下的经常使用性能查询命令top、vmstat、gprof、pidstat之对照

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

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118580.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【协议】MQTT、CoAP、HTTP比较,MQTT协议优缺点

    【协议】MQTT、CoAP、HTTP比较,MQTT协议优缺点从这几个层面进行比较与描述:1.协议栈:MQTT:TCP长链接,CoAP:UDP低功耗短连接,HTTP:TCP2.请求方式MQTT:发布订阅,CoAP:request/response,HTTP:request/response3.通讯消息格式:MQTT:CoAP:HTTP:4.使用特点与使用场…

    2022年6月20日
    58
  • 请你用三角形和平行四边形设计一个漂亮的图案(圆形和正方形组合图形)

    一共收集整理了图形20个,比较实用,同时也为了熟悉CSS的代码。整合了一下,有错误欢迎指出。1.正方形650)this.width=650;”alt=””border=”0″src=”http://www.meilizhuo.com/uploads/allimg/141105/09101KE1-0.png”style=”border:0px;”/>#square{width:100

    2022年4月10日
    354
  • Latex公式换行编写

    Latex公式换行编写latex在写公式时往往会遇到长公式或者连续等于的情况,这时可以选择公式换行操作:\begin{equation}\begin{aligned}a&=b+c\\&=c+b\end{aligned}\end{equation}得到如下的效果:其中&是用于标注需要对齐的位置,例如示例代码中放在…

    2022年6月14日
    87
  • 水果篮一般装几种水果_one step closer水果篮子

    水果篮一般装几种水果_one step closer水果篮子904.水果成篮题目描述题目链接:904水果成蓝你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果种类。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果。采摘的水果应当符合篮子中的水果类型。

    2022年9月2日
    3
  • python lambda表达式详解_lambda python

    python lambda表达式详解_lambda pythonlambda表达式是现代编程语言争相引入的一种语法,如果说函数是命名的、方便复用的代码块,那么lambda表达式则是功能更灵活的代码块,它可以在程序中被传递和调用。回顾局部函数回顾《Python函数高级用法》一节中,get_math_func()函数将返回三个局部函数之一。该函数代码如下:defget_math_func(type):#定义三个局部函数…#返回局部函数ifty…

    2022年8月31日
    1
  • Hibernate中的Session缓存问题「建议收藏」

    Hibernate中的Session缓存问题

    2022年2月6日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号