cpu 分析工具

2019-07-22  本文已影响0人  小灰灰1999

术语解释

平均负载:一段时间内可以运行进程数的平均值。表示了对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);

top

pidstat

time

perf

上一篇 下一篇

猜你喜欢

热点阅读