系统负载过大而导致系统性能下降的原因绝大多数都是CPU或I/O中的某个出了问题.在寻找瓶颈时,先查看平均负载等综合型数字(top), 再看CPU使用率、I/O等待率等更具体的数字, 再进一步由顶至下逐步调查各个进程.
sar 1 100 (输出当前情况100次,每次间隔1秒)
sar -P ALL (将所有cpu情况分别列出)
内存使用情况, kbcached= "kilo byte cached" 代表被内核当做缓存的量, %memused代表被使用的内存的百分比
sar -r 1 100
06:45:39 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
06:45:40 PM 163900 49384368 99.67 11221708 33746648 17373636 33.64
06:45:41 PM 143688 49404580 99.71 11219024 33772264 17373636 33.64
06:45:42 PM 162040 49386228 99.67 11215992 33757144 17373636 33.64
06:45:43 PM 143812 49404456 99.71 11208992 33781332 17373636 33.64
kbmemfree: 空闲物理内存量
kbmemused: 使用中的物理内存量
%memused: 物理内存使用率
kbbuffers: 内核中做为缓冲区使用的物理内存容量
kbcached: 内核中作为缓存使用的物理内存容量
kbswpfree: 交换区的空闲容量
kbswpused: 使用中的交换区容量
kbmemused - kbcached = 真正被进程使用的内存量
Linux会把全部内存用于缓存, 在某些情况下,增加内存可以降低I/O负载
【查看平均负载】
sar -q 1 100
08:46:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
08:46:02 PM 9 368 6.36 6.14 5.92
08:46:03 PM 5 368 6.33 6.14 5.92
08:46:04 PM 7 368 6.33 6.14 5.92
08:46:05 PM 8 368 6.33 6.14 5.92
08:46:06 PM 6 368 6.33 6.14 5.92
【查看历史数据】
sar -f /var/log/sa/sa13 # 13号当天的情况
【查看页面交换】
sar -W 1 100
09:29:36 PM pswpin/s pswpout/s
09:29:37 PM 0.00 0.00
09:29:38 PM 0.00 0.00
09:29:39 PM 0.00 0.00
09:29:40 PM 0.00 0.00
09:29:41 PM 0.00 0.00
pswpin/s 为1秒内的换入页面数
pswpout/s 为1秒内换出页面数
页面交换发生时,服务器的吞吐量会大幅下降. 服务器状况不良时, 如果怀疑因为内存不足而导致了页面交换发生,可以用sar -W确认当时是否发生了页面交换