美文网首页
cpu 分析工具

cpu 分析工具

作者: 小灰灰1999 | 来源:发表于2019-07-22 23:17 被阅读0次

    术语解释

    平均负载:一段时间内可以运行进程数的平均值。表示了对cpu的资源需求,通过汇总正在运行的线程数和正在排队的线程数计算得出。这个值的意义为:平均负载大于cpu数量表示cpu不足以服务线程,有些线程在等待。如果平均负载小于cpu数量,这表示还有一些余量;(不过由于linux目前把在不可中断执行磁盘I/O的任务也计入了平均负载,这意味着平均负载不能单用来表示cpu余量或饱和度)

    1.uptime

    03:38:00 up 1 day, 23:39, 2 users, load average: 0.36, 0.21, 0.17
    输出项含义:
    03:38:00 当前时间
    up:状态
    1day,23:39 运行总时间
    2 users:当前登录用户数
    load average: 0.36, 0.21, 0.17:系统负载情况,表示1分钟,5分钟,15分钟的平均负载

    vmstat(性能分析查看r)

     vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0   6288 146492    288 352232    0    0     3    24   88  113  2  3 95  0  0
    

    输出项含义:
    r 运行队列长度--可运行线程的总数(所谓可运行表示正在运行线程数+等待队列中的线程数)
    b:block 线程数
    us:用户态时间
    sy:系统态时间
    id:空闲
    wa:等待I/o,线程阻塞等待磁盘的I/o时的cpu空闲的时间
    st:偷取,cpu在虚拟化的环境下在其他租户上的开销

    mpstat

    多处理器统计信息工具,能够报告每个cpu的统计信息

    mpstat -P ALL(查看每个cpu的使用情况,关注idle sys user irq soft)
    Linux 2.6.32-504.23.4.el6.x86_64 (xiaohui-3bcjf.vclound.com)    07/22/2019      _x86_64_        (8 CPU)
    
    10:53:09 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
    10:53:09 PM  all    0.05    0.00    0.04    0.00    0.00    0.00    0.00    0.00   99.91
    10:53:09 PM    0    0.07    0.00    0.07    0.00    0.00    0.00    0.01    0.00   99.85
    10:53:09 PM    1    0.04    0.00    0.05    0.00    0.00    0.00    0.00    0.00   99.90
    10:53:09 PM    2    0.04    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.92
    10:53:09 PM    3    0.04    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.93
    10:53:09 PM    4    0.04    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.93
    10:53:09 PM    5    0.04    0.00    0.04    0.00    0.00    0.00    0.00    0.00   99.91
    10:53:09 PM    6    0.04    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.92
    10:53:09 PM    7    0.04    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.92
    
    

    输出项含义
    cpu :逻辑cpu id
    %usr:用户态时间
    %nice:以nice优先级运行的进程用户态时间
    %sys:系统态时间
    %iowait:I/O等待时间
    %irq:硬件中断cpu用量
    %soft:软中断cpu用量
    %steal:耗费在服务器其他租户的时间
    %guest :花费在访客虚拟机的时间
    %idle:空闲cpu

    sar

    系统活动报告器,可以用来观察当前的活动,以及配置用以归档和报告历史统计信息

    08:15:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
    08:16:02 PM         2       816      0.72      0.80      0.75
    08:17:01 PM         0       810      0.54      0.74      0.73
    08:18:01 PM         1       811      0.46      0.70      0.72
    08:19:01 PM         0       812      0.59      0.69      0.71
    08:20:01 PM         2       811      0.58      0.68      0.71
    08:21:01 PM         1       799      0.69      0.73      0.72
    08:22:01 PM         0       793      0.81      0.77      0.73
    08:23:01 PM         1       794      0.77      0.78      0.74
    08:24:01 PM         0       795      0.79      0.78      0.74
    08:25:01 PM         3       802      0.69      0.76      0.73
    08:26:01 PM         2       797      0.66      0.75      0.72
    08:27:01 PM         0       793      0.74      0.76      0.73
    08:28:01 PM         0       795      0.70      0.75      0.72
    08:29:01 PM         2       795      0.76      0.77      0.73
    08:30:01 PM         2       800      0.76      0.75      0.72
    08:31:01 PM         0       799      0.58      0.70      0.71
    08:32:01 PM         0       800      0.66      0.72      0.71
    08:33:02 PM         0       795      0.64      0.70      0.71
    08:34:01 PM         0       797      1.05      0.81      0.75
    08:35:01 PM         2       800      0.65      0.74      0.72
    08:36:01 PM         0       797      0.65      0.73      0.72
    08:37:01 PM         0       793      0.51      0.69      0.71
    08:38:01 PM         0       793      0.67      0.70      0.71
    08:39:01 PM         1       793      0.69      0.69      0.70
    08:40:01 PM         3       802      0.65      0.68      0.70
    08:41:01 PM         1       797      0.82      0.73      0.72
    08:42:01 PM         0       795      0.99      0.80      0.74
    08:43:01 PM         0       795      1.37      0.94      0.79
    08:44:01 PM         1       795      1.00      0.91      0.79
    08:45:01 PM         2       801      0.85      0.89      0.79
    08:46:01 PM         0       799      0.78      0.88      0.79
    08:47:02 PM         0       795      0.62      0.81      0.77
    08:48:01 PM         1       795      0.86      0.84      0.78
    08:49:01 PM         0       794      0.71      0.80      0.77
    08:50:01 PM         2       802      0.66      0.79      0.77
    08:51:01 PM         0       797      0.74      0.80      0.77
    08:52:01 PM         0       793      0.73      0.80      0.77
    08:53:01 PM         0       795      0.58      0.75      0.75
    08:54:01 PM         0       794      0.42      0.68      0.73
    08:55:01 PM         2       800      0.55      0.66      0.72
    08:56:01 PM         1       799      0.55      0.63      0.70
    08:57:01 PM         1       796      0.70      0.65      0.70
    08:58:01 PM         1       795      0.69      0.65      0.70
    08:59:01 PM         1       795      0.96      0.74      0.73
    09:00:01 PM         3       804      0.67      0.69      0.71
    

    输出项含义:
    runq-sz:运行队列长度(包含正在运行和等待中的进程数)
    plist-sz:进程列表中进程(processes)和线程(threads)的数量
    ldavg-1:一分钟内的平均负载
    ldavg-5:5分钟内的平均负载
    ldavg-15:15分钟内的平均负载

    ps

    进程状态命令,列出了所有进程的细节信息,包含cpu用量统计:

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0  10372    84 ?        Ss    2014  13:08 init [3]         
    root         2  0.0  0.0      0     0 ?        S<    2014 380:26 [migration/0]
    root         3  0.0  0.0      0     0 ?        SN    2014  44:24 [ksoftirqd/0]
    root         4  0.0  0.0      0     0 ?        S<    2014   0:00 [watchdog/0]
    root         5  0.0  0.0      0     0 ?        S<    2014 283:21 [migration/1]
    root         6  0.0  0.0      0     0 ?        SN    2014  29:04 [ksoftirqd/1]
    root         7  0.0  0.0      0     0 ?        S<    2014   0:00 [watchdog/1]
    root         8  0.0  0.0      0     0 ?        S<    2014 471:28 [migration/2]
    root         9  0.0  0.0      0     0 ?        SN    2014  57:33 [ksoftirqd/2]
    

    输出项含义:
    USER:进程用户
    PID:进程id
    %CPU:使用cpu
    %MEM:使用内存
    VSZ:使用虚拟内存
    RSS:使用真实内存
    TTY:终端
    STAT:状态
    START:启动的时间点
    TIME:使用的cpu时间
    COMMAND:命令

    其中stat包含以下状态:

    STAT 进程状态(有以下几种)
    D 无法中断的休眠状态(通常 IO 的进程);
    R 正在运行可中在队列中可过行的;
    S 处于休眠状态;
    T 停止或被追踪;
    W 进入内存交换(从内核2.6开始无效);
    X 死掉的进程(从来没见过);
    Z 僵尸进程;
    < 优先级高的进程
    N 优先级较低的进程
    L 有些页被锁进内存;
    s 进程的领导者(在它之下有子进程);
    l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);

    • 位于后台的进程组;
      WCHAN 正在等待的进程资源;

    top

    pidstat

    time

    perf

    相关文章

      网友评论

          本文标题:cpu 分析工具

          本文链接:https://www.haomeiwen.com/subject/gbbglctx.html