我正在尝试分析一组虚拟机的服务器要求。我们在它们上使用 LVM,因此 iostat 显示逻辑卷和物理磁盘的数字,它们通常在事务级别不匹配,我正在尝试确定哪个指标重要:tps 或读取+写入的总块数,以及物理驱动器或 lv?我猜是物理驱动器的总块数,但 tps 会考虑块不会考虑的搜索,这很重要,因为关键的决定是我们是否可以在旋转磁盘阵列上运行它们,而不是像现在这样在闪存驱动器上运行它们(我们即将将存储空间翻倍)。
“iostat 10”输出:
avg-cpu: %user %nice %system %iowait %steal %idle
2.38 1.35 1.40 0.69 0.00 94.19
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdb 225.48 2922.30 3511.65 79987371570 96118589648
sda 1.92 11.86 39.47 324647920 1080458180
dm-0 5.00 10.57 38.62 289229114 1057115528
dm-1 0.27 1.29 0.85 35343720 23342584
dm-3 414.45 1501.13 3393.89 41087911850 92895186296
avg-cpu: %user %nice %system %iowait %steal %idle
7.74 0.06 4.88 0.63 0.00 86.69
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdb 259.54 527.47 28098.30 5280 281264
sda 1.20 0.00 20.78 0 208
dm-0 2.60 0.00 20.78 0 208
dm-1 0.00 0.00 0.00 0 0
dm-3 3515.48 527.47 28097.50 5280 281256
avg-cpu: %user %nice %system %iowait %steal %idle
3.00 0.04 0.56 0.43 0.00 95.98
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdb 96.20 893.69 2175.78 8928 21736
sda 0.70 0.80 19.22 8 192
dm-0 2.40 0.00 19.22 0 192
dm-1 0.10 0.80 0.00 8 0
dm-3 267.77 893.69 2175.78 8928 21736
avg-cpu: %user %nice %system %iowait %steal %idle
2.80 0.01 0.64 0.73 0.00 95.83
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdb 110.50 1284.80 2376.00 12848 23760
sda 0.80 0.00 15.20 0 152
dm-0 1.90 0.00 15.20 0 152
dm-1 0.00 0.00 0.00 0 0
dm-3 272.30 1284.80 2376.00 12848 23760
答案1
这个答案说 Linux 内核在交易进入物理卷 (PV) 级别之前对其进行了优化,因此 的值有所不同tps
。
存储性能要求指南(适用于大多数系统 - 并非适用于所有系统!):
- 峰值应该以月甚至一年的尺度来确定;iostat、sar 等工具需要一些脚本来处理这个问题;扎比克斯图表效果会更好
- 随机 IOps 速率通常至关重要;
tps
当您查看 PV 时,它大约为(sda
而不是dm-3
) - 读取吞吐量(
Blk_read/s
)与完整备份最相关 - 写入吞吐量(
Blk_wrtn/s
)主要与从备份恢复相关;通常在收集工具中不可见
答案2
物理卷的 TPS 总和近似于 IOPS。随机 IOPS,因为每个 VM 都在对底层存储的不同部分执行 IO。您可能会从主轴中获得 100 个随机 IOPS,每 GB 成本较低。固态存储可以获得更多,每 IOPS 成本较低。
您可以解决的问题取决于您的性能和容量需求,并受到诸如您的阵列中适合多少个磁盘以及您愿意为其供电多少费用等因素的限制。
如果您想要低于 1 毫秒的响应时间,那就意味着需要固态硬盘。即使是最好的主轴阵列也难以获得低于个位数毫秒的缓存未命中响应时间。