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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中map转string_字符串转list集合

    java中map转string_字符串转list集合JAVAMap集合转String,String转Map集合当前两个转换方法主要用作支付宝,微信支付额外参数转换先看效果是不是诸君想要的map转string的值id=1&name=哆啦A梦丶幻想string转map的值{name=哆啦A梦丶幻想,id=1}贴代码://这里是用单元测试测试的两个方法@Testpubli…

    2025年10月20日
    4
  • mfc调用cmd执行完保留黑框

    mfc调用cmd执行完保留黑框

    2021年11月20日
    53
  • js算法初窥04(算法模式01-递归)「建议收藏」

    终于来到了有点意思的地方——递归,在我最开始学习js的时候,基础课程的内容就包括递归,但是当时并不知道递归的真正意义和用处。我只是知道,哦…递归是自身调用自身,递归要记得有一个停止调用的条件。那时

    2022年3月25日
    46
  • POJ2029——Get Many Persimmon Trees

    POJ2029——Get Many Persimmon Trees

    2022年1月4日
    40
  • nmtui网络配置命令

    nmtui网络配置命令nmtui 网络配置命令 nmtui 提供基于光标的文本用户界面 TUI nmtui 可提供一个文本界面来与 NetworkManag 交互用于配置网络 该工具包含在 NetworkManag tui 子软件包中 通常不会默认随 NetworkManag 的安装而安装该子软件包 需要单独安装 NetworkManag tui 一 nmtui 命令会开启一个图形化的配置工具 通过 nmtui 提供的 GUI 界面 可以编辑连接 启动连接 设置主机名 如果对连接的概念不理解可以参考这篇文章 RHE

    2025年6月21日
    4
  • linux部署tomcat项目详细教程(安装linux到部署tomcat)

    linux部署tomcat项目详细教程(安装linux到部署tomcat)近来想要研究下linux,所以就搭了个linux系统来配置服务器玩玩。这里分了个目录,如果已经安装好虚拟机或者linux系统的小伙伴可以直接跳过前面的安装介绍,直接看部署。文章目录一、总步骤说明二、安装虚拟机三、创建linux系统一、总步骤说明下载需要的材料(该博客有提供),这里我用到的主要有1)虚拟机Vmware,2)linux镜像文件CentOS-6.5-x86_64-bin-DVD1.iso3)服务器apache-tomcat-7.0.105.tar.gz4)jdk7u79linuxx

    2022年7月18日
    19

发表回复

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

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