本文大纲

《如何做性能测试》

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 把结果记入日志文件

image2024-12-28_21-49-37.png

输出项说明:

  • 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次)

image2024-12-28_21-50-55.png

结果说明:请查阅附件集中的《sysstat工具.pdf》。

输出内存页面的统计信息

sar -B 1 100  (每秒刷新1次,共输出显示100次)

image2024-12-28_21-52-11.png

输出项说明:

  • 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

image2024-12-28_21-52-55.png

我还是喜欢使用nload工具。

磁盘I/O 监控

sar -dp命令 输出每一个块设备的活动信息

sar -dp命令  可以帮助监控磁盘 I/O 活动:

  • sar -dp 1 10  (每秒刷新1次,共输出显示10次)

image2024-12-28_21-53-50.png

结果说明:

  • tps 每秒钟物理设备的 I/O 传输总量。
  • rsec/s 每秒从设备读入的扇区数。(一个扇区512字节)
  • wsec/s 每秒向设备写入的扇区数。
  • avgrq-sz 发送到设备的请求的平均大小,单位为扇区。
  • avgqu-sz 发送到设备的请求的平均队列长度。
  • await I/O请求平均执行时间。包括发送请求和执行的时间。单位为毫秒。
  • svctm 发送到设备的I/O请求的平均执行时间。单位为毫秒。
  • %util 表示磁盘IO能力使用的百分比
  1. avgqu-sz 的值较低时,设备的利用率较高。
    2. 当 %util 的值接近 100% 时,表示设备IO能力已经占满。

iostat 命令-磁盘I/O相关的统计信息

iosta t 用于输出CPU和磁盘I/O相关的统计信息。

  • iostat –xk 单位为KB
  • iostat –xm 单位为MB

image2024-12-28_21-54-40.png

结果说明:

  • 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能力使用的百分比
  1. avgqu-sz 的值较低时,设备的利用率较高。
    2. 当 %util 的值接近 100% 时,表示设备IO能力已经占满。

更多命令与参数,请查阅附件集中的《sysstat工具.pdf》。