术语解释
平均负载:一段时间内可以运行进程数的平均值。表示了对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 正在等待的进程资源;
网友评论