Дисковая оптимизация операций, снижение iops на лету
Столкнулся с проблемой большого iowait. Решил, поискать в яндексе, и найти все возможные трюки. По итогу, набрал хороший запас знаний, который помог снизить iops.
1) Отключаем логирование. Причем, если система стабильная, то можно отключить не только access logs в nginx, apache, но и errors_log.
Логирование очень сильно грузит диски, особенно при большом количестве сайтов.
2) Монтируем файловую систему в режиме defaults,noatime. Этот набор позволит снизить нагрузку от nginx.
Для этого в /etc/fstab добавляем эти строки, если их нету.
Чтобы не перезагружаться, можно просто сделать быстрый ремоунт даже с корневой директорией:
mount -o remount /
3) В sysctl добавляем параметры:
sysctl -w vm.dirty_writeback_centisecs = 6000 (можно увеличить до 15000, но я не рекомендую)
sysctl -w vm.swappiness = 10
sysctl -p
Первое, если честно сложный для понятия показатель. Грубо говоря, запись грязных частей файлов на диск
Второе, соотношение использования swap от ram. Т.к. swap нам не нужен, то почти отказываемся от него.
4) Также можно смонтировать папку /tmp как tmpfs
Описано здесь
Это что касается, основных параметров оси.
Как минимум система станет отзывчивее на 50%, а это показатель.