Як отримати загальне читання та загальне записування IOPS в Linux?


32

Як я можу читати і записувати IOPS окремо в Linux, використовуючи командний рядок або програмно? У мене встановлений sysstatпакет.

Скажіть, будь ласка, як я обчислюю їх окремо за допомогою sysstatкоманд пакета.

Або, чи можливо їх обчислити за допомогою файлової системи?

наприклад: /proc або /sysабо/dev

Відповіді:


46

iostatє частиною sysstatпакету, яка може побажати загальні iops за бажанням або показати їх розділеними читаннями / записами.

Запустіть iostatпрапором -d, щоб відобразити лише сторінку інформації про пристрій, і -x для отримання детальної інформації (окрема статистика читання / запису). Ви можете вказати потрібний пристрій інформації, просто додавши його згодом у командному рядку.

Спробуйте запустити iostat -dxі подивитися на підсумок, щоб відчути результат. Ви також можете використовувати iostat -dx 1для відображення постійного оновлення результату, що корисно для усунення несправностей або моніторингу в реальному часі,

Використовуючи awk, поле 4 дасть вам читання / секунду , тоді як поле 5 дасть вам записувати / секунду .

Читання лише / секунди:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

Лише в секунду:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

Читання / сек та запис / сек розділено з косою рисою:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

Загальний IOPS (про що більшість людей говорить):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

Наприклад, запуск останньої команди з мого основного диска / dev / sda виглядає так:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

Зауважте, що для запуску цього вам також не потрібно мати root, що робить його корисним для непривілейованих користувачів.

TL; DR: Якщо вас просто цікавить sda, наступна команда дасть вам загальний IOPS для sda:

iostat -d sda | grep sda | awk '{ print $2; }'

Якщо ви хочете додати IOPS на всіх пристроях, ви можете знову використовувати awk:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

Це дає вихід таким чином:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88


Дякую Mr.Dannel, що це корисно. якщо я хочу отримати повну систему читання / записування IOPS Як отримати?
шас

коли я запускаю, iostat -dx 1я отримав такі, як Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11для dm-0, dm-1, dm-2, рекурсивно, я повинен додати?
шас

Я оновив відповідь загальним шаблоном та прикладом для sda. Якщо ви просто хочете побачити IOPS для вашого жорсткого диска, використовуйте цю останню команду для загального IOPS ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel

Ні, я не хочу окремо, як ви згадуєте в першій відповіді. трохи плутати з dm-*тим, що я запитав, мені потрібно виконати додавання на цих розділах
shas

Ах, добре. Ви можете скористатися наступною командою, щоб перевірити, що таке кожен dm-xпристрій: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Я оновлю відповідь за допомогою цього, а також як додати результати.
Даніель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.