本文大纲
《如何做性能测试》
sarstat工具集监控系统资源
sysstat 是 Linux 系统中的常用工具包。它的主要用途是观察服务负载,比如CPU和内存的占用率、网络的使用率以及磁盘写入和读取速
度等。
sysstat 工具包中包含两类工具:
- 即时查看工具:iostat、mpstat、sar
- 累计统计工具:sar
详细使用参数,请查阅附件集中的《sysstat工具.pdf》。
Sysstat 工具安装
在 CentOS 系统中使用 YUM 包管理器轻松安装 sysstat:
yum install sysstat
完成安装后,可以立即开始监控系统资源状态。
CPU 监控
输出CPU使用情况的统计信息
基本命令
利用 sar 命令查看 CPU 使用率和性能数据。执行如下命令以每秒更新一次的状态显示连续 100 次
命令:sar 1 100 (每秒刷新1次,共输出显示100次)
命令:sar 1 100 > sarlog.log 把结果记入日志文件

输出项说明:
- CPU all 表示统计信息为所有 CPU 的平均值。
- %user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
- %nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
- %system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
- %iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
- %steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
- %idle 显示 CPU 空闲时间占用 CPU 总时间的百分比
若%iowait的值过高,表示硬盘存在IO瓶颈,cpu长时间在等待磁盘IO读写。
若%idle的值高(cpu空闲),但系统响应慢,有可能cpu在等待分配内存,应加大内存。
若%idle的值持续低于10,表示cpu忙,或处理能力低,要加cpu。
内存 监控
输出内存和交换空间的统计信息
基本命令
sar -r 1 100 查看整体内存和交换空间的统计信息,(每秒刷新1次,共输出显示100次)

结果说明:请查阅附件集中的《sysstat工具.pdf》。
输出内存页面的统计信息
sar -B 1 100 (每秒刷新1次,共输出显示100次)

输出项说明:
- pgpgin/s 每秒钟从磁盘读入的系统页面的 KB 总数
- pgpgout/s 每秒钟向磁盘写出的系统页面的 KB 总数
- fault/s 系统每秒产生的页面失效(major + minor)数量
- majflt/s 系统每秒产生的页面失效(major)数量
页交换:如果“页交换”频繁说明内存不足。操作系统按“页”管理内存中的数据,把“页”从RAM移动到磁盘,为了释放内存空间。频繁的页交换表明内存不足。
网络 监控
输出网络设备状态的统计信息
sar -n DEV 1 10
sar -n DEV 1 10 | grep eth0

我还是喜欢使用nload工具。
磁盘I/O 监控
sar -dp命令 输出每一个块设备的活动信息
sar -dp命令 可以帮助监控磁盘 I/O 活动:
- sar -dp 1 10 (每秒刷新1次,共输出显示10次)

结果说明:
- tps 每秒钟物理设备的 I/O 传输总量。
- rsec/s 每秒从设备读入的扇区数。(一个扇区512字节)
- wsec/s 每秒向设备写入的扇区数。
- avgrq-sz 发送到设备的请求的平均大小,单位为扇区。
- avgqu-sz 发送到设备的请求的平均队列长度。
- await I/O请求平均执行时间。包括发送请求和执行的时间。单位为毫秒。
- svctm 发送到设备的I/O请求的平均执行时间。单位为毫秒。
- %util 表示磁盘IO能力使用的百分比
- avgqu-sz 的值较低时,设备的利用率较高。
2. 当 %util 的值接近 100% 时,表示设备IO能力已经占满。
iostat 命令-磁盘I/O相关的统计信息
iosta t 用于输出CPU和磁盘I/O相关的统计信息。
- iostat –xk 单位为KB
- iostat –xm 单位为MB

结果说明:
- rrqm/s 将读入请求合并后,每秒发送到设备的读入请求数。
- wrqm/s 将写入请求合并后,每秒发送到设备的写入请求数。
- r/s 每秒发送到设备的读入请求数。
- w/s 每秒发送到设备的写入请求数。
- rkB/s 每秒从设备读入的数据量,单位为 KB/s。
- wkB/s 每秒向设备写入的数据量,单位为 KB/s。
- avgrq-sz 发送到设备的请求的平均大小,单位为扇区。
- avgqu-sz 发送到设备的请求的平均队列长度。
- await I/O请求平均执行时间。包括发送请求和执行的时间。单位为毫秒。
- svctm 发送到设备的I/O请求的平均执行时间。单位为毫秒。
- %util 表示磁盘IO能力使用的百分比
- avgqu-sz 的值较低时,设备的利用率较高。
2. 当 %util 的值接近 100% 时,表示设备IO能力已经占满。
更多命令与参数,请查阅附件集中的《sysstat工具.pdf》。