微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 磁盘IOPS和sar tps之间的关系

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

根据wikipedia SATA磁盘应该执行75-100 IOPS. ioping utility似乎证实这是随机访问测试:

# ./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有什么关系?

解决方法

事务是写入RAW磁盘的单个IO命令(获取块/写入块)(在您的示例中为dm-0). linux-kernel尝试将这些命令排序为更好的序列,或者尝试将它们压缩成更有效的命令(例如:一次获取两个块而不是获取一个块,并在此之后立即获得另一个块).这些是发送到磁盘控制器的事务(tps为sps).

良好的控制器迁移具有自己的逻辑,可进一步减少实际的事务数.

事务可能是SCSI命令“从扇区22开始向crontoller 1目标2 lun 3写入2 GB.”正如您所看到的,这不能与吞吐量数量直接相关.

你所追求的是持续的写入率.这里有几个限制因素:

>客户端连接:如果网络是千兆位,您将永远不会有超过100 MB / s的输入
> disk-controller:如果这是一个3 Gb控制器,你的吞吐量永远不会超过300 MB / s
> disk:查看制造商的持续写入性能
>文件系统:由于操作系统需要处理数据,因此有一点开销 – 在RAM磁盘中测试…

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

对于专业用途,请使用SAS而不是SATA.

原文地址:https://www.jb51.cc/linux/400536.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐