Поэтому я должен обратить внимание на то, что iotop недоступен для 2.6.18, так как он меньше 2.6.20 и требует Python 2.6+. Я провел небольшое исследование и наткнулся на эту статью: http://lserinol.blogspot.com/2009/09/io-usage-per-process-on-linux.html
В соответствии с этим, если у этого процесса есть статистика io в / proc / pid # / io (где pid # - это процесс #), это выполнимо независимо от версии ядра. Так что на самом деле я мог бы обновить Python до версии 2.6 и протестировать iotop. Однако мой вариант Linux, CentOS версии 5.5 (Final), в настоящее время поддерживает только Python 2.4.3-44.el5. Если бы я сделал удаление из yum, это выглядело бы не так красиво. В итоге он хочет удалить 235 пакетов, большинство из которых очень важны!
Я прочитал в одном месте в Интернете (я забыл вчерашний URL-адрес), что вы можете установить Python 2.6+ параллельно с этим, и установить rpm для iotop, используя это. Ну, я не выбрал этот маршрут.
Я подумал, что, черт возьми, давайте напишем iotop (не копируя его, а обратное проектирование, не глядя на его код / его использование) в bash. Я думал, что он просто возьмет файл / proc / pid # / io и проанализирует статистику.
Итак, я написал сценарий для получения 10 самых высоких значений rchar, wchar, read_bytes и write_bytes путем сбора всей этой статистики из всех файлов / proc / pid # / io, сортировки их по каждой метрике и последующего получения 10 самых высоких значений.
Вывод, данные кажутся совершенно бесполезными.
Кто-нибудь знает какие-либо ресурсы для продвинутого Linux, где я могу выяснить, как взять эти каталоги / proc / pid # / и выяснить, какого черта они делают с io на диске?
Моя главная цель - выяснить, что именно вызывает большую нагрузку на мой диск. Я просто знаю, что он находится в разделе / (в данном случае / dev / sda2), и я не совсем уверен, как сузить его без помощи iotop. Если я запускаю iostat для сбора показателей в течение 1 минуты, каждую секунду, первый результат, который он мне дает, показывает высокое значение «kB_read / s», поэтому я думаю, что он в основном читает. Однако, если я смотрю обновление, которое оно дает мне каждую секунду, на самом деле оно просто показывает значения для kB_wrtn / s. Это заставляет меня думать, что первоначальное значение, которое дает мне iostat, вводит в заблуждение.
Возможно blktrace
пакет доступен для CentOS 5.5? В btrace
Команда дает вам очень подробное представление о подсистеме ввода-вывода.