Утилита iotop показывает статистику нагрузки на жесткие диски, в том числе она показывает процессы и пользователей, которые эту самую нагрузку создают. Но на CentOS 5.9 Final, стандартный iotop из репозитория может не запуститься. В таком случае делаем следующее:
Если при запуске iotop, получаем ошибку:
Could not run iotop as some of the requirements are not met: - Linux >= 2.6.20 with - I/O accounting support (CONFIG_TASKSTATS, CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING)
Не хватает опций ядра.
Пересобираем ядро, включив эти опции (сборка ядра — это отдельная тема, найти и включить эти опции можно воспользовавшись командой make menuconfig)
После установки нового ядра и успешной перезагрузки, iotop, все еще может не заработать и выдать ошибку типа:
Traceback (most recent call last): File "/usr/bin/iotop", line 16, in ? main() File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 567, in main main_loop() File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 557, inmain_loop = lambda: run_iotop(options) File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 465, in run_iotop return curses.wrapper(run_iotop_window, options) File "/usr/lib64/python2.4/curses/wrapper.py", line 44, in wrapper return func(stdscr, *args, **kwds) File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 457, in run_iotop_window process_list = ProcessList(taskstats_connection, options) File "/usr/lib/python2.4/site-packages/iotop/data.py", line 375, in __init__ self.update_process_counts() File "/usr/lib/python2.4/site-packages/iotop/data.py", line 431, in update_process_counts stats = self.taskstats_connection.get_single_task_stats(thread) File "/usr/lib/python2.4/site-packages/iotop/data.py", line 158, in get_single_task_stats reply = self.connection.recv() File "/usr/lib/python2.4/site-packages/iotop/netlink.py", line 229, in recv raise err OSError: Netlink error: Недопустимый аргумент (22)
Чтож, не отчаивайтесь.
Попробуйте так:
И выполните следующие действия:
yum remove iotop cd mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros cd /usr/local/src wget http://man-linux.ru/files/iotop-0.4.4-1.src.rpm rpmbuild --rebuild iotop-0.4.4-1.src.rpm rpm -ivh /root/rpmbuild/RPMS/noarch/iotop-0.4.4-1.noarch.rpm
После этого, запускайте — заработало? :)
Ну и пара полезных аргументов команды:
-o
— показывать только процессы, реально использующие жесткие диски в текущий момент времени
-n NUM
— где вместо NUM нужно указать количество повторов, прежде чем программа завершит работу
-b NUM
— не интерактивный режим, для того что бы после выхода из программы, информация оставалась на консоли.
Лично я запускаю примерно так:
iotop -n 5 -o -b