Linux disk write timeout

Дата: 30.04.2018Метки:

При интенсивных операциях записи в Debian 9 поймал disk write timeout. К сожалению, точное содержание ошибки не записал, но в общем суть понятна. Система выдавала таймаут при записи на диск. Сначала пытался увеличить следующее значение:

echo 180 > /sys/block/sda/device/timeout

Но конкретно данная манипуляция не дала никакого результата. В итоге удалось решить проблему указав значения параметров кэширования в Linux dirty_background_ratio и dirty_ratio:

echo 5 > /proc/sys/vm/dirty_background_ratio
echo 10 > /proc/sys/vm/dirty_ratio

dirty_background_ratio — основной инструмент настройки, обычно уменьшают этот параметр. Если ваша цель снизить количество данных, хранимое в кэше, так что данные будут писаться на диск постепенно, а не все сразу, то уменьшение этого параметра наиболее эффективный путь. Более приемлемо значение по умолчанию для систем имеющих много оперативной памяти и медленные диски.

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