Как определить тяжелую запись на диск?

9

У меня есть эта проблема с сервером, на котором запущено приложение CakePHP. Сервер работает безумно медленно, я сначала подумал, что это проблема приложения, но потом я обнаружил постоянные 5-6 МБ / с записи на диск.

Какой самый простой способ найти причину такой тяжелой записи?

Сервер работает под управлением Gentoo.

Якуб Арнольд
источник

Ответы:

15

Установите iotop и найдите, какая программа это делает.

wazoox
источник
17

Как автор Dstat я бы указал на дополнительные опции. Вы можете легко увидеть, какой процесс потребляет наибольшую пропускную способность ввода / вывода:

dstat -ta --top-bio

или dstat -ta --top-io

Первый - это верхний блок ввода-вывода, а второй - верхний блок ввода-вывода (включая кэшированный). Это может помочь вам проверить, соответствует ли это ожиданиям (как потребителю, так и потреблению).

Есть несколько других плагинов, которые могут помочь вам определить степень использования дисков:

dstat -tdf --disk-util

Поэтому, если у вас есть узкие места ввода / вывода, это скажет вам, какие диски задействованы, чтобы вы могли увидеть, можно ли что-то сделать с этой целью.

И если вы устраняете неполадки в определенных (сетевых) файловых системах, можно использовать другие плагины для получения дополнительной информации об этих файловых системах. Dstat также имеет плагины для других метрик (процессор, виртуальная машина, виртуализация и т. Д.), И в зависимости от того, что вам нужно для визуализации, вы можете написать свои собственные плагины или изменить существующие плагины, чтобы показать, что именно вам нужно соотнести.

Однако, если вам нужна помощь, вы хотите внести свой вклад или у вас есть отличная новая идея, свяжитесь со мной, чтобы узнать, как мы можем действовать ...


источник
3

Вы можете использовать модный инструмент dstat

Юрий
источник
3

Из справочной страницы dstat - 'dstat -M time, cpu, net, disk, sys, load, proc, topcpu'. dstat устанавливается с большинством дистрибутивов, поэтому быстрее, чем установка iotop.

Саураб Баржатия
источник
1

Вы можете записать действия диска (вместе с генерирующим его pid) в системный журнал с помощью следующей команды:

echo 1 > /proc/sys/vm/block_dump

Перед выполнением этого убедитесь, что ваши системные журналы не находятся на блочном устройстве, в противном случае вы попадете в бесконечный цикл.

asdmin
источник