Что делать, если на VDS перегружен жесткий диск?

03 Ноября 2015
1 335

Предположим, что вы размещаете свой проект на VDS, и вас устраивает стабильность хостинга и его параметры. Однако ваши сайты неожиданно начали работать медленнее, несмотря на то, что вы не увеличивали объем данных на 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, представляющий собой так называемое «пустое устройство»). В этом случае логи перестанут сохраняться на жестком диске. При необходимости - логирование всегда можно будет снова включить.


Выберите тарифы с мощным VDS хостингом для ваших проектов.