Ускоряем ext4. Убираем тормоза контейнера lxc в Proxmox

Дано: proxmox на свежеустановленном Debian. Созданный контейнер с ubuntu из шаблона. Установлен apache, php, mysql и движок mediawiki. Страницы mediawiki открывались дольше секунды. Если смотреть Network в DevTools Chrome — страница начинает отдаваться сервером спустя 900-1400 мс. На глаз эта задержка очень заметна.

Первичный осмотр показал, что нагрузка на процессор минимальна, оперативная память свободна. Остается файловая система. Она представляет собой два старых диска, собранных mdadm в RAID1. SMART по одному из дисков показывает, что он скорее мертв, чем жив, но массив работает.

Для проверки эффективности дисковой подсистемы я взял утилиту pveperf. Проблема подтвердилась:

Смотрим на параметр FSYNCS. По хорошему он должен быть больше в разы.

Попробуем вылечить это с помощью добавления опций монтирования в /etc/fstab: data=writeback,barrier=0.

Должно получиться так:

Что означают эти опции?

data — режим журналирования. Всего есть 3 режима:

  • Journal Mode (самый медленный, наиболее безопасный)
  • Ordered Mode (средняя скорость, очень безопасный, опция по умолчанию)
  • Writeback Mode (наиболее быстрый, относительно безопасный)

Мы выбрали последний режим. он самый быстрый, но и наименее безопасный для сохранности данных, в случае аварий.

barrier — по умолчанию, используются барьеры синхронизации в очереди запросов.

После перезагрузки проверяем результат:

Теперь FSYNCS 1533.

Страницы вместо 900-1400 мс стали отдаваться за 80-130 мс.

Добавить комментарий