О превышении допустимой нагрузки на хостинг

06 Февраля 2016
863

Ситуация, которая может случиться с каждым владельцем развивающегося сайта с растущей нагрузкой - это получение предупреждения о превышении лимита ресурсов.


Если хостинг-провайдер сообщает вам о создаваемой нагрузке на процессор, но вы уверены что вам должно хватать ресурсов, постарайтесь понять в чем может быть причина данной нагрузки. Зная причину, вы сможете оперативно устранить возникшую проблему.


Нагрузка на CPU при запуске PHP- или Perl-скриптов

В таких случаях хостер не всегда может четко сказать, какой именно скрипт создает проблему, и определить это вам нужно будет самостоятельно. Если вы используете модульную CMS, например Joomla!, Wordpress или Drupal, то причиной может быть некорректная работа отдельного модуля.


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


Нагрузка на CPU и (или) дисковую систему от веб-сервера Apache

Излишняя нагрузка может создаваться веб-сервером Apache при отдаче сайтом большого количества графики и другой статики. Архитектура Apache устроена таким образом, что одним потоком или процессом обрабатывается только один запрос. Соответственно, если на вашем сайте очень много графической информации, то на ее отдачу будет тратиться неоправданно большое число ресурсов процессора и ОЗУ. Существенной также будет и нагрузка на диск сервера.


В этом случае можно использовать веб-сервер Nginx в качестве фронт-енда к Apache. Nginx за счет асинхронной архитектуры позволяет обрабатывать тысячи соединений в рамках одного процесса, и отдает статику гораздо легче и быстрее. Проблема лишь в том, что на многих хостингах в качестве веб-сервера используется только Apache, а связка Nginx+Apaсhe используется довольно редко. Тем не менее, при переходе на VPS можно настроить данную связку без проблем. Обычно перенос сайтов на VPS с хостинга и настройку необходимого ПО может выполнить ваш хостинг-провайдер даже без дополнительной оплаты.


Избыточное число запросов к сайту

Большое число однотипных запросов к сайту с одного IP или множества IP-адресов (так называемый HTTP-флуд - одна из разновидностей DDoS-атак). Помочь может блокировка проблемных IP в файле .htaccess с помощью директивы «deny from».


Если на хостинге используется только Apache, и отражать проблемные запросы средствами того же Nginx у хостера нет возможности, а атака имеет интенсивный характер, хостер может заблокировать ваш аккаунт на сервере, и попросить перенести сайты на VPS или выделенный сервер.


Если атака возникает в первый раз, то логично обратиться к хостинг-провайдеру за помощью в ее отражении, или хотя бы потребовать разблокировки аккаунта и возможности продолжения работы с хостингом сразу после прекращения атаки. Если такая проблема возникает систематически, то переход на VPS или сервер, и его грамотная настройка для отказоустойчивой работы сайта (например, установка скриптов автоблокировки IP бот-машин на основании анализа логов, установка Nginx в качестве фронт-енда к Apache и фильтрация проблемных запросов на его уровне), действительно имеет смысл.


Существенный рост посещаемости проекта

С развитием сайта рост его посещаемости является закономерным явлением, и рано или поздно сайту действительно может стать тесно на текущем тарифном плане. Это нормально для развивающихся проектов. В большинстве случаев на обычном виртуальном хостинге для динамических сайтов порогом посещаемости является цифра в 2000-4000 уникальных посетителей в сутки.


Если посещаемость вашего сайта близка к этим цифрам, то переход на VDS или VIP хостинг будет правильным решением, которое положительно скажется на его дальнейшем развитии.


Нагрузка на CPU и дисковую систему со стороны MySQL

Нормальным временем для выполнения запроса к базе данных MySQL считается несколько десятков миллисекунд. Запросы, которые выполняются дольше (особенно более 0,5 секунд) часто создают избыточную нагрузку как на дисковую систему сервера, так и на его процессор. Если хостер предупреждает вас о подобной проблеме, запросите у него логи медленных запросов, и выполните оптимизацию структуры базы данных, а также очистите базу от неактуальной информации.


Избыточная нагрузка на почтовый сервис

Интенсивное использование почтового сервиса на хостинге для проведения моментальных массовых рассылок по сотням или тысячам получателей может вызвать существенную нагрузку на сервер. По этой причине, большинство провайдеров устанавливают определенные ограничения на отправку почты - обычно 25-50 писем в час или около 500-1000 писем в сутки. Данное ограничение направлено как на борьбу со спам-рассылками, так и на снижение нагрузки на почтовую подсистему сервера. Для обычной работы с почтой на сайте таких ограничений как правило достаточно, а для массовых рассылок лучше пользоваться почтовым хостингом, сервисами моментальных рассылок, или же приспособить для этой цели VPS.


Общие рекомендации

Нужно понимать, что хостер ежедневно может сталкиваться с десятками и сотнями проблем, аналогичных вашей, а значит, способен вам помочь в их решении. Хостер - это ваш союзник, а не враг в борьбе с такими проблемами.


Хостинг-провайдеру выгоднее оказать помощь в решении проблемы и сохранить клиента, чем отказать в предоставлении услуг, при этом не только упустив прибыль, но и подпортив себе репутацию. Если вам не повезло с хостером, и он это не понимает сам - намекните, или же открыто скажите об этом.


Если провайдер предлагает переход на более высокий тариф или же услугу более высокого класса, уточните, что именно это вам даст. Если аргументы действительно весомы, лучше к ним прислушаться. Если аргументы сводятся только к тому, что «так будет лучше во всех отношениях», ищите нового хостинг-провайдера.


Выберите надежный виртуальный хостинг.