Как снизить нагрузку на сервер
Если вы читаете эту статью, то скорее всего, вы уже получали от вашего хостера «письма счастья», которые почти ежедневно сообщают вам, что ваш сайт оказывает чрезмерную нагрузку на сервер.
Письмо выглядит таким образом:
------------
Напоминаем, что Ваш аккаунт оказывает чрезмерную нагрузку на сервер.
Нагрузка на CPU характеризует суммарное время, затраченное процессорами сервера на обработку процессов аккаунта. Нагрузка на MySQL характеризует суммарное время, затраченное на обработку запросов к базам данных аккаунта.
Данное уведомление выслано автоматически на основе данных за предыдущий день.
Информацию по нагрузке за прошедшие дни и ограничения тарифных планов Вы можете посмотреть в панели управления.
Мы можем предложить Вам следующие варианты решения сложившейся ситуации: 1. Устранить источник нагрузки, самостоятельно оптимизировав сайты, используя средства CMS либо специализированное ПО (профайлеры, фреймворки) на локальном компьютере. 2. Обратиться к соответствующим специалистам для снижения оказываемой нагрузки, в случае если Вы не готовы самостоятельно произвести оптимизацию. 3. Рассмотреть вариант перехода на тарифный план с более высокими ограничениями (Eterno, Premium, 1Сайт), либо на техническое решение без ограничений по нагрузке (выделенный или виртуальный сервер).
До 2015-07-09 включительно Вам необходимо снизить создаваемую нагрузку до ограничений тарифного плана, после чего проконтролировать, чтобы она не превышала допустимый уровень; либо принять решение об адекватной смене условий размещения. Если по истечении этого срока будет наблюдаться повышенная нагрузка, дальнейшее обслуживание на прежних условиях будет невозможно.
Мы просим связаться с нами и сообщить о планируемом пути решения данного вопроса.
В случае если нагрузка будет вызывать нестабильную работу сервера, мы будем вынуждены приостановить работу сайтов аккаунта.
Здесь стоит сказать, что есть некая закономерность в том, что такие «письма счастья», в большинстве своем, получают пользователи хостинга Time Web; на Спринтхосте, например, сайт просто теряет соединение с сервером и становится недоступен. К счастью такое состояние длится не долго, но работать все равно не возможно, так как частота таких выпадений мешает нормальной работе. И первый и второй случай являются поводом для реагирования, так как без адекватной реакции админа сайт могут просто отключить, а там уже проблемы будут посерьезней.
Как вы уже догадались, меня тоже не миновала участь решать проблему снижения нагрузки на сервер.
Когда сайт одного из моих клиентов получил подобное предупреждение, я не сразу отреагировал, в надежде, что все образуется само собой, ну мало ли, день на день не приходится. Но не тут-то было. Сообщения приходили на почту с завидным постоянством.
Я понял, что надо что-то делать и для начала связался со Службой поддержки хостинга. Я сообщил им, что активно пытаюсь решать эту проблему.
И это ПЕРВОЕ, что я сделал ПРАВИЛЬНО:
В следующем сообщении мне ненавязчиво намекнули, что лучше было бы перейти на тарифный план с более высокими ограничениями. В ответ я логично обосновал, почему я не буду этого делать, но буду разбираться в чем кроется причина внезапного повышения нагрузки на сервер. Кстати сказать, сайт находится на данном хостинге уже более 3-х лет и до сих пор никаких проблем с нагрузкой не возникало.
После моего отклика, меня попросили сообщить им о принятых мною мерах оптимизации сайта. Я отписался о проделанной работе и на этом наш диалог закончился. Не скажу, что нагрузка была очень продуктивно снижена, но никаких писем с тех пор больше не приходило. Думаю, можно сделать некоторые выводы о том, что ключевые слова получаемых писем о нагрузке — это подвигнуть клиента принять решение о смене условий размещения сайта.
Но давайте судить никого мы не будем, у каждого своя работа, а наша с вами задача отстоять свою точку зрения на этот счет. В подобном случае нужно привести все доводы, какие вы имеете в защиту своей позиции. Я, например, указал, что не вижу причины, которая могла бы вызвать внезапное увеличение нагрузки: никаких изменений на сайте не производилось, дополнительных материалов не выставлялось, число посетителей не увеличилось. Поэтому, менять тарифный план считаю не целесообразным, тем более, что у меня занято всего лишь треть дискового пространства, предусмотренного данным тарифом. К тому же я пообещал выяснить причину столь резкого скачка нагрузки.
ВТОРОЕ что я сделал ПРАВИЛЬНО:
Убрал все метрики посещаемости сайта, которых, по желанию клиента, было установлено предостаточно, чтобы снизить посещение сайта ботами статистики.
Убрал меню мета с боковой панели сайта, чтобы предотвратить вторжение ботов в админ панель.
С помощью плагина P3 (Plugin Performance Profiler) проанализировал работу всех плагинов, установленных на сайте и заменил наиболее тормозящие на более легкие, а некоторые так и вообще отключил.
Включил на хостинге функцию управление log-файлами, для анализа сделанных к сайту запросов. Анализ логов показал слишком много запросов с ошибкой 404, причем это были дубли одной и той же рубрики. Поэтому я обратился к настройкам Плагина All in One SEO Pack и обнаружил небольшой недочет. У меня была разрешена нумерация страниц для канонических URL, вследствие чего и образовалось такое большое количество дублей. Красным обведен пункт, напротив которого должна стоять галочка.
Установил пару плагинов: для кэширования страниц сайта WP Super Cache и для оптимизации Базы данных WP-Optimize. Оба эти плагина находятся в репозитарии Вордпресс, так что найти их не составит труда.
ТРЕТЬЕ, что я сделал ПРАВИЛЬНО:
Отчитался в службу поддержки о проделанной мною работе, с последовательным указанием названий установленных плагинов, а также всех предпринятых мною действий для оптимизации работы сайта.
Несмотря на то, что нагрузка время от времени превышает значения, заявленные в тарифном плане, вопрос на этом, похоже, был исчерпан.
PS: Кстати сказать, есть одна интересная программка, которая позволяет просмотреть в реальном времени все события, произошедшие за определенный промежуток времени на вашем сайте, например, за сутки. Программа называется logstalgia-1.0.3.win32 она бесплатная, скачать её можно в интернете.
Программа не требует установки на компьютер, необходимо лишь скачать с вашего сервера файл логов и открыть его в этой программе (предварительно нужно включить на сервере функцию управления log-файлами). Программа выглядит, как игра в пинг-понг, где положительный ответ сервера выглядит, как отбитый шарик. А запрос, который не смог быть обработан сервером идет поверх «ракетки» и означает нагрузку на сервер. Слева видны IP адреса, с которых приходят те или иные запросы, справа ссылки на запрашиваемый контент. Выглядит все, примерно, так:
Все это я сделал, а нагрузка все равно не падает. - Если это о вас, то читаем следующую статью. Как снизить нагрузку на сервер и спать спокойно.