Я пытаюсь отслеживать дисковые операции ввода-вывода на сервере.
Мне нужно получить две метрики:
- чтение IO/сек
- запись IO/сек
Используя iotop
я могу прочитать эти показатели ( DISK READ
и DISK WRITE
).Моя главная проблема в том, что я не могу использовать никакие невстроенные команды.
Как я могу получить мгновенный снимок прочитанного?IO/секизапись IO/секбез сторонних утилит?
решение1
Посмотрите в файле, /proc/diskstats
там есть нужная вам информация. Прочитайтеhttp://www.kernel.org/doc/Documentation/iostats.txt
Файлы в нем /proc
не являются настоящими файлами, это динамические псевдофайлы.
Также, если он не зависит от каких-либо несуществующих динамических библиотек, вы можете скопировать pstop в ~/bin
then chmod +x ~/bin/pstop
. Если зависит, вам придется скомпилировать статически связанную версию.
решение2
Я наконец нашел хороший способ считывания показателей ввода-вывода:
- Получить все идентификаторы процессов,
/proc/
перечислив каталог - Извлечь метрики из
cat /proc/[pid]/io
- Сделайте некоторые математические расчеты