Я пытаюсь оценить требования IOPS моего приложения, работающего на 32-битной CentOS 6.2. Я начал проводить измерения на машине с SATA-дисками, и меня смущает разница между IOPS и tps, измеренными sar.
Согласно википедии SATA диск должен выполнять 75-100 IOPS. Утилита ioping, кажется, подтверждает это для теста произвольного доступа:
# ./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
Но значения tps, производимые sar, намного выше (/ 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?
linux
performance
hard-drive
iops
sar
pystole
источник
источник
Ответы:
Транзакции - это одиночные IO-команды (блок выборки / записи), которые записываются на RAW-диск (в вашем примере dm-0). Ядро linux пытается упорядочить эти команды в лучшую последовательность или пытается сжать их в более эффективные команды (например: получить два блока одновременно вместо одного блока и сразу получить другой блок после этой). Это транзакции, которые отправляются на дисковый контроллер (tps для sda).
Хорошие контроллеры имеют собственную логику, которая еще больше уменьшает реальное количество транзакций.
Транзакцией может быть SCSI-команда «запись 2 ГБ в цель crontoller 1, лун 3, начиная с сектора 22). Как видите, это не может быть приведено в прямую корреляцию с числами пропускной способности.
Что вам нужно, так это постоянная скорость записи. У вас есть несколько ограничивающих факторов здесь:
Мое предположение для вашей системы: получить хороший аппаратный raid-контроллер, способный выполнять рейд 10 или 5, и получить как минимум 6 быстрых (15k) дисков.
Для профессионального использования используйте SAS вместо SATA.
источник
Также имейте в виду, что
TPS
значение представляет чтение и запись, вы можете использовать-x
переключатель для расширенного просмотра, где чтение и запись разделены (r / s = чтение IOPS, w / s = запись IOPS):источник