sar命令--Linux 性能分析


一、sar 命令行的常用格式:

        sar [options] [-A] [-o file] t [n]

        在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项,sar命令的选项很多,下面只列出常用选项:

        -A:所有报告的总和。
        -u:CPU利用率
        -v:进程、I节点、文件和锁表状态。
        -d:硬盘使用报告。
        -r:没有使用的内存页面和硬盘块。
        -g:串口I/O的情况。
        -b:缓冲区使用情况。
        -a:文件读写情况。
        -c:系统调用情况。
        -R:进程的活动情况。
        -y:终端设备活动情况。
        -w:系统交换活动。

二、分析经验性步骤:

        首先查看 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 瓶颈。调整系统的 CPU 瓶颈。

步骤 3

%wio 的值是否大于 15? (不同os有不同的阀值)

-> 以后记住这个值。它可能表示磁盘或磁带瓶颈。转至步骤 4
不是 -> 转至步骤 4

步骤 4

# sar -d [interval] [iterations]
用于任何磁盘的 %busy 是否都大于 50? (请记住,50% 指示一个大概的 指南,它可能远远高于您系统的正常值。在某些系统上,甚至 %busy 值为 20 可能就表示发生了磁盘瓶颈,而其他系统正常情况下可能就为 50% busy)对于同一个磁盘上,avwait 是否大于 avserv?

不是 -> 很可能不是磁盘瓶颈,转至步骤 6
-> 此设备上好像发生了 IO 瓶颈。
转至步骤 5

步骤 5

系统上存在磁盘瓶颈,发生瓶颈的磁盘上有哪些内容?

原始分区,文件系统 -> 调整发生磁盘 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 瓶颈,调整发生了 CPU 瓶颈的系统。
如果 %idle 不是很低,则可能不是 CPU、磁盘 IO或者内存瓶颈。
-> 系统上存在内存瓶颈,调整发生内存瓶颈的系统。




猜你喜欢

转载自richard-2010.iteye.com/blog/1271044