Я провел тест, чтобы измерить количество операций ввода-вывода в секунду в Linux:
iozone -s 4g -r 2k -r 4k -r 8k -r 16k -r 32k -O -b /tmp/results.xls
iozone утверждает, что вывод выражается в операциях в секунду, но цифры слишком велики, чтобы это было правдоподобно. Я наблюдаю максимум 320 CMD / с на консоли vmware esx (esxtop, затем v).
File size set to 4194304 KB
Record Size 2 KB
Record Size 4 KB
Record Size 8 KB
Record Size 16 KB
Record Size 32 KB
OPS Mode. Output is in operations per second.
Command line used: iozone -s 4g -r 2k -r 4k -r 8k -r 16k -r 32k -O -b tmpresults.xls
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
4194304 2 19025 5580 27581 29848 284 198 415 1103217 1498 18541 4340 24245 25618
4194304 4 15650 21942 18962 21068 252 1198 193 976164 1677 22802 23093 21089 21232
4194304 8 11121 11638 10273 10165 247 1196 202 625020^C
Тест длился 15 часов, прежде чем я нажал ^ C. Это обычное ожидание для такой командной строки (выделенный 4-дисковый RAID10 LUN, диски SAS со скоростью 10 тыс. Об / мин в EMC CX300)?
Странно, что в Linux нет стандарта для измерения IOPS. Эти вопросы часто возникают, когда людей просят оценить количество операций ввода-вывода в секунду для планирования емкости или определения размера хранилища. В итоге я использую несколько инструментов, чтобы получить эту информацию. Во-первых, вам нужно создать нагрузку с помощью выбранного вами метода; либо типичная загрузка приложения, либо что-то вроде теста iozone, который у вас был выше.
В другом окне отслеживайте IOPS, используя iostat -dxk 1
, суммируя столбцы r / s и w / s ИЛИ используя Инструмент IBM nmon с D
возможность отслеживать Xfers
столбец (который, по сути, представляет собой сумму значений r / s и w / s).
Вот nmon
вывод из тяжелого последовательного чтения с использованием bonnie++ -u root -n 64:100000:16:64
(запустить из целевого каталога). На данный момент мы показываем ~ 3200 операций ввода-вывода в секунду при чтении со скоростью около 258 мегабайт в секунду на 6-дисковом массиве RAID 1 + 0 из дисков SAS 15 тыс. Об / мин.
- Disk I/O -----(/proc/diskstats)------- all data is Kbytes per second ---------------------------------------------
|DiskName Busy Read Write Xfers Size Peak% Peak-RW InFlight |
|iss/c0d0 100% 264571.1 112.3KB/s 3238.7 81.0KB 100% 340584.5KB/s 2 |
|s/c0d0p1 0% 0.0 0.0KB/s 0.0 0.0KB 0% 2.0KB/s 0 |
|s/c0d0p2 0% 0.0 0.0KB/s 0.0 0.0KB 99% 1022.4KB/s 0 |
|s/c0d0p3 0% 0.0 0.0KB/s 0.0 0.0KB 100% 3636.5KB/s 0 |
|s/c0d0p4 0% 0.0 0.0KB/s 0.0 0.0KB 0% 0.0KB/s 0 |
|s/c0d0p5 0% 0.0 0.0KB/s 0.0 0.0KB 0% 0.0KB/s 0 |
|s/c0d0p6 0% 0.0 0.0KB/s 0.0 0.0KB 0% 0.0KB/s 0 |
|s/c0d0p7 0% 0.0 41.9KB/s 7.5 5.0KB 100% 16103.5KB/s 0 |
|s/c0d0p8 0% 0.0 0.0KB/s 0.0 0.0KB 79% 147.8KB/s 0 |
|s/c0d0p9 100% 264571.1 64.4KB/s 3230.2 81.0KB 100% 340538.5KB/s 2 |
--------------------------------------------------------------------------------------------------------------------
В основном вы получаете большую помощь от кеширования, и последовательная запись в порядке, но случайные, особенно записи, кажутся низкими.