首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >磁盘IOPS与sar tps的关系

磁盘IOPS与sar tps的关系
EN

Server Fault用户
提问于 2013-12-01 19:56:45
回答 3查看 29.9K关注 0票数 13

我正在尝试估计运行在32位CentOS 6.2上的应用程序的IOPS需求。我开始在带有SATA磁盘的机器上进行一些测量,我对sar测量的IOPS和tps之间的差异感到非常困惑。

根据维基百科,SATA磁盘应该执行75-100IOPS。对于随机访问测试,掺杂实用程序似乎确认了这一点:

代码语言:javascript
运行
复制
# ./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):

代码语言:javascript
运行
复制
# 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有什么关系?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2013-12-02 12:38:32

事务是单个IO命令(提取块/写块),它们被写入原始磁盘(在您的示例dm-0中)。linux内核尝试将这些命令排序为更好的顺序,或者尝试将它们压缩为更高效的命令(例如:一次获得两个块,而不是在这个块之后得到另一个块)。这些事务发送到磁盘控制器(用于sda的tps)。

好的控制器具有自己的逻辑,从而进一步减少了事务的实际数量。

事务可能是SCSI-命令“写2GB到crontoller 1,目标2,lun 3,从扇区22开始)。

你想要的是持续的写率.这里有几个限制因素:

  • 客户端连接:如果网络是千兆字节,您将永远不会有超过100 MB/s的输入。
  • 磁盘控制器:如果这是一个3gb控制器,您的吞吐量将永远不会超过300 MB/s。
  • 磁盘:查找制造商的价值以获得持续的写性能。
  • 文件系统:由于操作系统需要处理RAM-磁盘中的数据测试,所以有一些开销.

我对你的系统的猜测是:获得一个好的硬件raid控制器,它能够执行raid 10或5,并且至少有6个快速磁盘(15k)。

对于专业使用,使用SAS而不是SATA。

票数 6
EN

Server Fault用户

发布于 2013-12-02 07:30:09

还请注意,TPS值表示读和写,您可以使用-x开关进行读和写分离的扩展视图(r/s = reads,w/s =写IOPS):

代码语言:javascript
运行
复制
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
票数 6
EN

Server Fault用户

发布于 2020-10-07 19:58:35

iostat/sysstat是一个非常强大的工具。最好是查阅相关的手册页面,以免你等了6年零10个月才得到一个真正正确的答案。您的问题的答案摘自手册页:

iostat命令生成的第一个报告提供了自系统启动以来的统计数据。每一份后续报告都涵盖自上次报告以来的时间。

如果运行类似iostat 1 2的操作,则第二个报告块将包含1秒的IO统计信息,而第一个报告块将包含一组以前的累积数据。在cron中运行sar通常很有帮助,因此您可以以轻量级但一致的方式收集有意义的统计数据。

在您的示例中,您看到的是以前的累积状态,而不是在一些压力测试中捕获的IOPS。

票数 -1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/558523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档