我正在尝试估计运行在32位CentOS 6.2上的应用程序的IOPS需求。我开始在带有SATA磁盘的机器上进行一些测量,我对sar测量的IOPS和tps之间的差异感到非常困惑。
根据维基百科,SATA磁盘应该执行75-100IOPS。对于随机访问测试,掺杂实用程序似乎确认了这一点:
# ./ioping -R /dev/sda
--- /dev/sda (device 931.0 Gb) ioping statistics ---
279 requests completed in 3.0 s, 92 iops, 371.3 kb/s
min/avg/max/mdev = 2.7 ms / 10.8 ms / 130.8 ms / 7.9 ms但是sar产生的tps值要高得多(/dev/sda):
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 2.02 14.86 0.00 82.96
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 559.00 0.00 142600.00 0 142600
dm-0 18433.00 0.00 147464.00 0 147464
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0如果这个加载是顺序的(具有不同块大小的dd)或随机访问(ioping),那么值仍然是相同的。我认为tps实际上是IOPS,我希望它会随着较大块的转移而下降。
那么tps值到底是什么意思呢?它与IOPS有什么关系?
发布于 2013-12-02 12:38:32
事务是单个IO命令(提取块/写块),它们被写入原始磁盘(在您的示例dm-0中)。linux内核尝试将这些命令排序为更好的顺序,或者尝试将它们压缩为更高效的命令(例如:一次获得两个块,而不是在这个块之后得到另一个块)。这些事务发送到磁盘控制器(用于sda的tps)。
好的控制器具有自己的逻辑,从而进一步减少了事务的实际数量。
事务可能是SCSI-命令“写2GB到crontoller 1,目标2,lun 3,从扇区22开始)。
你想要的是持续的写率.这里有几个限制因素:
我对你的系统的猜测是:获得一个好的硬件raid控制器,它能够执行raid 10或5,并且至少有6个快速磁盘(15k)。
对于专业使用,使用SAS而不是SATA。
发布于 2013-12-02 07:30:09
还请注意,TPS值表示读和写,您可以使用-x开关进行读和写分离的扩展视图(r/s = reads,w/s =写IOPS):
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
vda 0.07 24.65 0.30 18.95 30.65 330.22 18.74 0.07 3.61 0.98 1.89发布于 2020-10-07 19:58:35
iostat/sysstat是一个非常强大的工具。最好是查阅相关的手册页面,以免你等了6年零10个月才得到一个真正正确的答案。您的问题的答案摘自手册页:
iostat命令生成的第一个报告提供了自系统启动以来的统计数据。每一份后续报告都涵盖自上次报告以来的时间。
如果运行类似iostat 1 2的操作,则第二个报告块将包含1秒的IO统计信息,而第一个报告块将包含一组以前的累积数据。在cron中运行sar通常很有帮助,因此您可以以轻量级但一致的方式收集有意义的统计数据。
在您的示例中,您看到的是以前的累积状态,而不是在一些压力测试中捕获的IOPS。
https://serverfault.com/questions/558523
复制相似问题