从步骤1开始,首先查看CPU使用情况,按照诊断CPU、内存或磁盘瓶颈的指导进行操作。对于下面的每个步骤,查找一端时间内的趋势,从中收集系统运行性能较差时的数据。另外,只有将这些数据与系统正常运行时收集的数据进行比较时才能进行准确的诊断。
步骤1
# sar -u [interval] [iterations]
(示例: sar -u 5 30)
%idle是否很低?这是CPU未在运行任何进程的时间百分比。在一端时间内%idle为零可能是CPU瓶颈的第一个指示。
不是->系统未发生CPU瓶颈。转至步骤3。
是->系统可能发生了CPU、内存或I/O瓶颈。转至步骤2。
步骤2
%usr是否较高?很多系统正常情况下花费80%的CPU时间用于用户,20%用于系统。其他系统通常会使用80%左右的用户时间。
不是->系统可能遇到CPU、内存或I/O瓶颈。转至步骤3。
是->系统可能由于用户进程遇到CPU瓶颈。转至部分3,部分A, 调整系统的CPU瓶颈。
步骤3
%wio的值是否大于15?
是->以后记住这个值。它可能表示磁盘或磁带瓶颈。转至步骤4。
不是->转至步骤4。
步骤4
# sar -d [interval] [iterations]
用于任何磁盘的%busy是否都大于50? (请记住,50%指示一个大概的 指南,它可能远远高于您系统的正常值。在某些系统上,甚至%busy值为20可能就表示发生了磁盘瓶颈,而其他系统正常情况下可能就为50% busy。)对于同一个磁盘上,avwait是否大于avserv?
不是->很可能不是磁盘瓶颈,转至步骤6。
是->此设备上好像发生了IO瓶颈。
转至步骤5。
步骤5
系统上存在磁盘瓶颈,发生瓶颈的磁盘上有哪些内容?
原始分区,
文件系统->转至部分3,部分B,调整发生磁盘IO瓶颈的系统。
Swap ->可能是由于内存瓶颈导致的。
转至步骤6。
步骤6
# vmstat [interval] [iterations]
在很长的一端时间内,po是否总是大于0?
对于一个s800系统(free * 4k)是否小于2 MB,
(对于s700系统free * 4k是否小于1 MB)?
(值2 MB和1 MB指示大概的指南,真正的LOTSFREE值,即系统开始发生paging的值是在系统引导时计算的,它是基于系统内存的大小的。)
不是->如果步骤1中的%idle较低,系统则很可能发生了CPU瓶颈。
转至部分3,部分A,调整发生了CPU瓶颈的系统。
如果%idle不是很低,则可能不是CPU、磁盘IO或者内存瓶颈。
请转至部分4,其他瓶颈。
是->系统上存在内存瓶颈,转至部分3部分C,调整发生内存瓶颈的系统。