Что делать, если на VDS перегружен жесткий диск?
Если проверка ресурсов показывает, что свободного объема оперативной памяти (RAM) и ресурсов процессора (CPU) более, чем достаточно, то скорее всего проблема заключается в жестком диске вашего VDS.
Причины повышенной нагрузки
Если выделенных по тарифу мощностей достаточно, но тем не менее вы все равно наблюдаете существенное снижение производительности, возможно причина в активном использовании дисковой подсистемы сервера.
Подобная ситуация часто возникает при работе сервера баз данных MySQL с большим массивом данных. Это ведет к тому, что данные большого объема записываются на диск во временную директорию.
Также проблема может возникнуть, когда на сервере размещено большое количество VDS-контейнеров, а в качестве дисковой подсистемы используются жесткие диски типа SATA, независимые или объединенные в RAID-массив на программном уровне.
Определение источника проблемы
Прежде всего выясните, действительно ли производительность дисковой подсистемы VDS недостаточна (диск перегружен). На серверах с Linux нужно зайти на сервер по SSH, запустить мониторинг процессов top и посмотреть на показатель wa в строке Cpu(s).
Для Ubuntu перегрузку диска достаточно легко определить при помощи утилиты atop. Ее необходимо запустить и проверить процентное значение занятости диска в строке DSK.
Wa обозначает процент времени простоя процессора в связи с ожиданием ввода-вывода. Чем сильнее нагружена дисковая подсистема, тем выше будет простой, так как на ожидание операций ввода-вывода потребуется больше времени. Если значение данного показателя стабильно выше 20%, то проблема действительно имеется, и требуется оптимизация работы дисковой подсистемы.
Высокие показатели wa в сочетании с низкой Load Average (среднее значение загрузки системы за некоторый период времени) на VDS-контейнере сигнализируют о перегрузке дисковой подсистемы другим контейнером. В данном случае решения проблемы следует ожидать в первую очередь от хостинг-провайдера. Обратитесь с полученными данными в поддержку и обсудите варианты устранения перегрузки.
Если после проведения аналитики вы убедились, что проблема может быть решена без помощи хостера, то приступайте к ее устранению.
Устранение проблемы
В зависимости от причины перегрузки, вы можете применить ряд мер. Ниже перечислены некоторые из них.1. Перегрузка сервером баз данных
Например, если диск на VDS перегружается сервисом MySQL, можно определить и устранить медленные и тяжелые запросы к базе данных. Можно также вынести временные таблицы в оперативную память (RAM (tmpfs)), что даст хороший эффект. Можно настроить файловое кеширование для сайта, чтобы сократить число запросов к БД и так далее.2. Перегрузка веб-сервером
Когда диск нагружается веб-сервером Apache (или другим веб-сервером), большинство запросов идет к статическим файлам. В этом случае можно настроить прокси-кеширование и вынести прокси-кеш в оперативную память (RAM (tmpfs)), а не хранить его на диске.3. Перегрузка логированием
Если диск перегружается из-за логирования (процесс записи данных о запросах пользователей) большого числа запросов к сервисам, можно отключить логирование. Для этого необходимо направить запись логов в /dev/null (специальный файл в системах класса UNIX, представляющий собой так называемое пустое устройство). В этом случае логи перестанут сохраняться на жестком диске. При необходимости - логирование всегда можно будет снова включить.