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.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...