Linux 磁盘性能指标
在衡量磁盘性能时,我们经常提到五个常见指标:利用率、饱和度、IOPS、吞吐量和响应时间。这五个指标是衡量磁盘性能的基本指标。
- 利用率(Utilization):磁盘处理 I/O 的时间百分比。过度使用(如超过 80%)通常意味着磁盘 I/O 存在性能瓶颈。
- 饱和度(Saturation):指磁盘处理 I/O 的繁忙程度。过度饱和意味着磁盘存在严重的性能瓶颈。当饱和度为 100% 时,磁盘无法接受新的 I/O 请求。
- IOPS(Input/Output Per Second):指每秒 I/O 请求的数量。
- 吞吐量(Throughput):每秒 I/O 请求的大小。
- 响应时间(Response time):指发送 I/O 请求和接收响应之间的间隔时间。
这里需要注意的是,关于利用率,我们只考虑有无 I/O,而不考虑 I/O 的大小。也就是说,当利用率为 100% 时,磁盘仍有可能接受新的 I/O 请求。
一般来说,在为应用选择服务器时,首先要对磁盘的 I/O 性能进行基准测试,这样才能准确评估磁盘性能,以判断是否能够满足应用的需求。
当然,这需要你在随机读、顺序读、随机写、顺序写等各种应用场景下测试不同 I/O 大小(通常是 512B ~ 1MB 之间)的性能。
安装 iostat
CentOS 安装:yum install sysstat
Debian、Ubuntu安装:apt-get install sysstat
使用 iostat
选项
- -c:仅显示 CPU 使用情况;
- -d:仅显示设备利用率;
- -k:显示状态以千字节每秒为单位,而不使用块每秒;
- -m:显示状态以兆字节每秒为单位;
- -p:仅显示块设备和所有被使用的其他分区的状态;
- -t:显示每个报告产生时的时间;
- -V:显示版号并退出;
- -x:显示扩展状态。
参数:
- 间隔时间:每次报告的间隔时间(秒);
- 次数:显示报告的次数。
使用示例
-d 参数
参数 -d 表示,显示设备(磁盘)使用状态。
输出信息的含义:
- tps:该设备每秒的传输次数。”一次传输” 意思是 “一次 I/O 请求”。多个逻辑请求可能会被合并为 “一次 I/O 请求”。”一次传输” 请求的大小是未知的。
- kB_read/s:每秒从设备读取的数据量;即IOPS
- kB_wrtn/s:每秒向设备写入的数据量;即IOPS
- kB_read:读取的总数据量;
- kB_wrtn:写入的总数量数据量。
这些单位都为 Kilobytes。