- 说明: 刚开始学习linux服务器性能常见指标查询,再次整理笔记,有用到的网址/博客会注明出处。
服务器性能排查指南
cpu
1.uptime
[root@monitor_outer ~]# uptime
09:43:47 up 27 days, 23:57, 2 users, load average: 0.01, 0.06, 0.01
- 注释
当前服务器时间: 08:21:34
当前服务器运行时长 36 min
当前用户数 2 users
当前的负载均衡 load average 0.00, 0.00, 0.00,分别取1min,5min,15min的均值
另:系统平均负载是指在特定时间间隔内运行队列中的平均进程数。(一般小于cpu核心数)
2.top
top - 10:20:36 up 28 days, 33 min, 2 users, load average: 0.01, 0.04, 0.00
Tasks: 283 total, 1 running, 282 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7%us, 0.8%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8061760k total, 7858924k used, 202836k free, 552028k buffers
Swap: 8388604k total, 16428k used, 8372176k free, 4755172k cached
- 注释
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
memory
[root@monitor_outer ~]# vmstat -w 3 100
procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu-------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 17708 161340 552112 4832484 0 0 0 2 2 2 0 0 99 0 0
0 0 17708 160252 552112 4832488 0 0 0 23 726 652 0 0 99 0 0
0 0 17708 160688 552112 4832492 0 0 0 17 859 801 1 1 99 0 0
0 0 17708 160540 552112 4832500 0 0 0 11 868 759 1 1 99 0 0
- r表示当前运行队列中运行或等待CPU时间片的进程的数目,代表线程处于可运行状态,但CPU还未能执行。大家不要误认为等待CPU时间片意味着这个进程没有运行,实际上某一时刻1个CPU只能有一个进程占用,其他的进程只能排着队等着,此时这些排队等待CPU资源的进程依然是运行状态。这个值如果长期大于系统CPU的逻辑个数,说明CPU不足,需要增加CPU的个数。
- 为了方便快速阅读,简要整理结果指标
free 空闲物理内存大小,
si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
bi: 每秒读取的块数
bo: 每秒写入的块数
wa: IO等待时间百分比
一般如果free很少或者在下降,si,so,wa很大,说明内存不足
disk
root@EM-6CU625XTLL: ~# iostat -x
Linux 2.6.32-504.el6.x86_64 (EM-6CU625XTLL) 08/16/2019 _x86_64_ (24 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
4.97 0.00 0.40 0.00 0.00 94.63
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 186.16 0.07 5.67 5.23 1534.69 268.12 0.02 4.28 0.16 0.09
dm-0 0.00 0.00 0.07 48.64 4.97 389.14 8.09 0.09 1.72 0.01 0.04
await 等待I/O平均的时间(milliseconds)
%util 被I/O需求消耗的CPU百分比
sysbench
压测工具