zoukankan      html  css  js  c++  java
  • 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)



  • 相关阅读:
    反射
    java 验证码识别
    Spring boot + mybatis + orcale
    JVM内存模型及垃圾回收的研究总结
    Java的Array和ArrayList
    Java中最常见的十道面试题
    session和cookie
    Hibernate的load()和get()区别
    ajax跨域获取网站json数据
    对于Spring的IOc和DI的理解
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3924198.html
Copyright © 2011-2022 走看看