У меня проблема с сервером, на котором запущено приложение CakePHP. Сервер безумно медленный, сначала я подумал, что это проблема приложения, но потом обнаружил постоянную запись на диск 5-6 МБ / с.
Как проще всего найти причину такой тяжелой записи?
На сервере работает Gentoo.
Как автор Dstat я бы указал на дополнительные возможности. Вы можете легко увидеть, какой процесс потребляет наибольшую пропускную способность ввода-вывода:
dstat -ta --top-bio
или dstat -ta --top-io
Первый - это ввод-вывод верхнего блока, а второй - ввод-вывод верхнего уровня (включая кэшированный). Это может помочь вам проверить, этого ли вы ожидаете (как с точки зрения потребителя, так и с точки зрения потребления).
Есть и другие плагины, которые могут помочь вам определить коэффициент использования дисков:
dstat -tdf --disk-util
Так что, если у вас есть узкие места ввода-вывода, это сообщит вам, какой диск (-ы) задействован, чтобы вы могли увидеть, можно ли что-то с этим сделать в этом конце.
А если вы устраняете неполадки в определенных (сетевых) файловых системах, можно использовать другие плагины для получения дополнительной информации об этих файловых системах. Dstat также имеет плагины для других показателей (ЦП, ВМ, виртуализация и т. Д.), И в зависимости от того, что вам нужно визуализировать, вы можете написать свои собственные плагины или изменить существующие плагины, чтобы точно показать, что вам нужно для корреляции.
Однако, если вам нужна помощь, вы хотите внести свой вклад или у вас есть отличная новая идея, свяжитесь со мной, чтобы узнать, как мы можем продолжить ...
Установить iotop, и найдите, какая программа это делает.
На странице руководства dstat - 'dstat -M time, cpu, net, disk, sys, load, proc, topcpu'. dstat устанавливается с большинством дистрибутивов, поэтому он выполняется быстрее, чем установка iotop.
Вы можете использовать необычный инструмент dstat
попробуйте vmstat и iostat
Вы можете сбросить данные о дисковых операциях (вместе с генерирующим его pid) в системном журнале с помощью следующей команды:
echo 1 > /proc/sys/vm/block_dump
Перед тем, как выдать это, убедитесь, что ваши системные журналы не находятся на блочном устройстве, иначе вы попадете в бесконечный цикл.