【发布时间】:2015-05-11 11:45:48
【问题描述】:
用于测试磁盘可以达到的吞吐量限制
dd if=/dev/zero of=test bs=4k count=25000 conv=fdatasync
多次运行后,平均速度约为 130 MB/s
现在当在这些系统上运行 cassandra 时,我正在使用监控磁盘使用情况
iostat -dmxt 30 sdd sdb sdc
我想确保我正确地解释了某些条目,如下所示。
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util
sdc 0.00 2718.60 186.30 27.20 17.87 12.06 287.13 44.98 215.06 2.79 59.58
即使 rMB/s + wMB/s 的总和应该大致等于 %util(disk throughput which is 130MB/s) 并且我假设一些利用率用于 seek ,但差异是否足够大以占用大约 24% 的利用率。
提前感谢您的帮助。
【问题讨论】:
-
虽然吞吐量可能是 130 MB/秒,但该磁盘设备可以执行多少 IO 操作/秒? SATA 驱动器通常每秒可以执行大约 60-70 次随机 IO 操作。尝试将随机 512 字节块直接写入原始磁盘设备,其中实际设备是单个 SATA 磁盘。您很幸运能够获得 40 kB/秒的吞吐量,并且在执行这些写入时您会看到 100% 的利用率。
-
感谢 Andrew,所以看起来您说的是随机写入,在充分利用的情况下获得非常低的吞吐量并不少见。但是,我如何从磁盘的角度估计我的一个节点的能力。 cassandra 只进行随机读取,所有写入都是顺序的。我无法衡量我拥有的 SATA 磁盘将支持多少操作,或者即使我选择更昂贵的 SSD?
标签: performance iostat