Проверяем нагрузку на сайт и повышаем его отказоустойчивость. Нагрузка на сайт


Как проверить нагрузку на сайт и снизить её?

Получение письма от хостинг-провайдера, информирующего о превышении допустимой нагрузки на сайт – не самое приятное событие для владельца сайта. В таком случае остаётся только 2 варианта избежать блокировки ресурса и других неприятных последствий – подключить более дорогой тариф или попытаться уменьшить нагрузку самостоятельно. Давайте же узнаем, как выполняется проверка нагрузки сайта и её снижение.

Содержание

Что такое нагрузка на сайт и зачем за ней следить?

Почему сайт начинает работать медленно?

Методы анализа нагрузки на сайт

Сервисы проверки

  1. WebWait
  2. Host-Tracker
  3. Webo
  4. SitePerf
  5. LoadImpact
  6. И другие…

Как снизить нагрузку на сайт?

  1. Ограничение для роботов поисковых систем
  2. Структурирование ресурса
  3. Оптимизация программного кода
  4. Кеширование данных
  5. Сжатие изображений
  6. Другие рекомендации

Вместо заключения

Что такое нагрузка на сайт и зачем за ней следить?

Нагрузка – параметр, который показывает уровень расхода ресурсов сервера при функционировании сайта. Для выполнения какой-либо функции сайта привлекаются свободные возможности сервера: задействуются его ОЗУ, место на дисковой системе, работает процессор. Собственно, значение нагрузки и показывает, сколько процентов ресурсов сервера расходуется сайтом.

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

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

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

Почему сайт начинает работать медленно?

Высокая нагрузка сайта на сервер может возникать, если вы подключены к неподходящему тарифу. Когда ресурс приобретает популярность, нагрузка на него возрастает из-за увеличения посещаемости. Заметив резкое увеличение объёма потребления ресурсов со стороны какого-либо сайта, хостинг-провайдер может временно ограничить доступ к нему. Рекомендуем постоянно следить за среднесуточной посещаемостью сайта и при необходимости переходить на более дорогой тариф (для смены тарифного плана достаточно связаться с хостером).

Помимо роста популярности, увеличение нагрузки ресурса на сервер наблюдается при неожиданном попадании в топ раздачи поисковых систем одного или нескольких частотных запросов. Часто к этому приводят внешние факторы – демонстрация по телевидению программы аналогичной тематики, размещение на сайте актуальных новостей и т.п. Активная гиперссылка на ваш ресурс, размещённая на крупной площадке, также может привести к стремительному росту посещаемости.

Отказоустойчивость веб-сайта уменьшается и в том случае, когда его страницы постоянно исследуются роботами. Устранить эту проблему нетрудно: достаточно создать разместить в корневой папке ресурса текстовый файл robots.txt. Он поможет сократить список адресов страниц, которые нужно индексировать.

Следующая возможная причина роста нагрузки – DDoS-атаки. Ещё 5 лет назад они были чем-то из ряда вон выходящим, сегодня же от DDoS-атак ежедневно страдают сотни сайтов. Причем при массированной хакерской атаке на сайт страдают и другие ресурсы, размещаемые на том самом сервере.

Специалисты советуют на время DDoS-атаки временно блокировать ресурс и не стараться «отбить» её собственными силами. Если же подобные угрозы возникают регулярно, придётся перенести веб-сайт на персональный сервер или обратиться к квалифицированным экспертам, способным защитить его.

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

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

Методы исследования нагрузки на сайт

Существует, по меньшей мере, 3 способа проанализировать уровень нагрузки, оказываемой вашим веб-сайтом на сервер. Речь идёт об изучении логов, подробном аудите исходного кода и профилировании.

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

Рассмотрите информацию, доступную из панели управления, и проанализируйте, каковы отличия участков логов при минимальной и максимальной нагрузке. Как правило, уже на этом этапе можно сделать важные выводы. Возможно, нагрузка возрастает в момент прихода поисковых роботов, начинающих выкачивать ресурс. Или причина заключается    в резком увеличении количества посетителей. Могут быть ошибки в самих логах. Наконец, нагрузка часто возрастает при активации ресурсоемкого скрипта.

Следующий метод исследования нагрузки – аудит кода. Он подразумевает подробный разбор работы отдельных скриптов, задействуемых для решения разных задач. Проще говоря, вы должны проанализировать код и выявить в нём неоптимальные, медленные участки. Может быть, в каких-то местах можно сократить код или упростить запросы к базам данных. Возможно, вы обнаружите и части, вообще не влияющие на загрузку страницы – например, старый код, который по ошибке не был удалён при обновлении.

Профилированием называют анализ времени выполнения отдельных частей кода, а также расчет числа вызовов функций. Профилирование выполняется для определения участков скрипта, которые нужно оптимизировать. Чтобы отследить время выполнения любой функции, в момент её вызова и после получения результата снимаются данные с таймера.

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

Сервисы проверки

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

1. WebWait

Webwait.com – один из самых быстрых сервисов. В специальное окно нужно вписать ссылку на страницу, которую вы желаете проверить (не обязательно главную). Через считанные секунды вы узнаете, за сколько времени она загружается.

В общей сложности Webwait загружает вашу страницу 5 раз подряд и выбирает минимальное время. Для загрузки используется ваш интернет, что в некоторых случаях не очень удобно. Например, если вы пользуетесь медленным интернетом, время загрузки в любом случае будет большим, если очень быстрым – страница загрузится быстрее, чем у большинства посетителей вашего сайта.

2. Host-Tracker

Host-Tracker – более функциональный сервис, работающий по отличному от Webwait принципу. Для проверки скорости загрузки ресурса используется уже не ваш интернет, а подключения осуществляются одновременно из 90 точек со всего мира. После этого из полученных для разных регионов значений выводится среднее арифметическое.

3. Webo

Webo – один из самых популярных в Рунете сервисов для проверки скорости работы сайта. Осуществляет глубокое тестирование сайта и выводит точное значение времени загрузки его разных страниц. Здесь же пользователи могут заказать оптимизацию загрузки для своего сайта. Конечно, не бесплатно.

4. SitePerf

SitePerf – программа с очень широким инструментарием. С её помощью вы можете узнать не только время запуска страницы в целом, но и скорость загрузки её отдельных элементов (в том числе таблиц, меню, изображений). Пользователь может самостоятельно выбирать сервер, с которого будет проверяться его ресурс, и задавать ряд дополнительных параметров тестирования.

5. LoadImpact

LoadImpact – сервис, метод проверки которого отличается от остальных. Он будто бы имитирует DDoS-атаку на ваш ресурс, производя до 50 одновременных подключений (большее количество – платно). С каждого из них открывается по 10-20 разных страниц. Другими словами, в считанные секунды LoadImpact загружает до 1000 страниц. Затем пользователю показывается результат в виде графика. Если на нём нет резких подъёмов или спадов – значит, всё отлично, сайт выдерживает большую нагрузку. В ином случае вам нужно выбрать более дорогой тарифный план или оптимизировать ресурс для ускорения его работы.

6. И другие…

Помимо вышеперечисленных сайтов, проверить нагрузку на сайт можно с помощью таких сервисов:

  • Sitespeed.me – осуществляет быструю проверку сайта и показывает данные о его общей скорости работы, времени загрузки страницы и её размере. Плюс Sitespeed – этот ресурс русскоязычный.
  • Webtoolhub.com — протестировав ваш сайт, сервис посоветует, стоит ли его оптимизировать. Положительный ответ вы получите в случае, если он загружается дольше 8 сек. Учитывайте, что в процессе проверки скорости работы не учитывается время загрузки картинок, видеозаписей, анимаций и прочей графики.
  • Alertra.com — помогает протестировать доступность вашего ресурса из 10 различных регионов.
  • Site24x7.com — сервис, практически идентичный Alertra. Единственное отличие – подключение осуществляется из 23 мест.
  • Webpagetest.org — итоги проверки выводятся на экран в графическом виде. Вы можете увидеть расширенную разверстку по отдельным элементам страницы.
  • Builtwith.com — функциональный ресурс, осуществляющий глубокое тестирование сайта.
  • Onlinewebcheck.com — после тестирования этот сервис посоветует вам, как исправить ошибки, влекущие за собой снижение скорости работы ресурса.
  • Tools.pingdom.com — определяет и выводит на экран время загрузки изображений, фреймов, флеш-элементов, Java-скриптов, RSS и CSS (всё это – по отдельности) для каждой проверяемой страницы.
  • Pagescoring.com — также тестирует время открытия разных объектов страницы, определяет среднее значение.
  • Rapid.searchmetrics.com — отображает результат в виде таблицы. Пользователь может оценить и общую скорость работы сайта, и скорость загрузки отдельных объектов (CSS, скриптов, изображений).
  • Gtmetrix.com — подробная сводка по скорости загрузки вашего сайта из разных мест планеты.

В интернете регулярно появляются новые сервисы для анализа работы сайтов, порой их возможности приятно удивляют. Так что если вы нашли хороший проверочный сервис, не попавший в наш список – дерзайте! Благо, пользоваться подобными приложениями просто, даже если вы не сильны в английском.

Как снизить нагрузку на сайт?

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

1. Ограничения для роботов поисковых систем

На любом ресурсе есть разделы, которые не нуждаются в индексации «Яндексом», Google и другими поисковиками. Проанализируйте, какие материалы из разных разделов должны находиться в поисковой выдаче. К примеру, информация из гостевой книги или форума, о котором все давно забыли, вряд ли будет пользоваться высоким спросом пользователей, в отличие от тематических материалов, актуальных новостей и статей. Участки сайта, содержащие мало полезной информации, убирать из индексации можно и даже нужно, ведь благодаря этому ваш сайт будет работать быстрее. Если вы считаете, что даже на форуме есть полезные посты, просто переместите их в индексируемый раздел статей.

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

2. Структурирование ресурса

Проанализируйте содержимое своего сайта и нарисуйте схему размещения находящейся на нём информации. Посмотрите, насколько оно удобно. Вероятно, вы сразу поймёте, что какие-то разделы можно переорганизовать, какие-то статьи – переместить в другую категорию или просто группировать. Обратите внимание на удобство навигации и ссылки на разные страницы: одинаково ли они генерируются?

Бывает, что доступ к одной и той же странице можно получить по различным ссылкам, и каждая из них применяется для навигации в разных участках кода. Подобные ссылки только расширяют объём сайта, а дублирование информации уменьшает среднюю уникальность одной страницы. В то же время поисковые системы и браузеры посетителей воспринимают дублирующиеся страницы, как разные и выкачивают их по отдельности, повышая оказываемую на ресурс нагрузку.

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

3. Оптимизация программного кода

Когда движок пишется быстро, трудно включить в него идеальные алгоритмы. Какие-то функции сайта могут выполняться медленно, ибо программисты реализовали их первым попавшимся методом. Может быть, тот же алгоритм можно представить в более простом и «быстром» виде. Например, использовать одну мощную функцию для обработки большого количества данных за единственный вызов (вместо 3-4 вложенных циклов расчета 3-мерных массивов).

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

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

Может, к вашему ресурсу до сих пор привязан старенький форум, на который уже давно заходят только спамеры и роботы поисковых систем? Его можно спокойно удалить, заменив блогом. Даже если обновлять его лишь от случая к случаю, пользователи вашего сайта извлекут от него больше пользы, нежели от форума.

Отдельно отметим необходимость оптимизации запросов SQL и создания индексов в базе данных. SQL – весьма продуктивный язык для получения информации. Иногда всего один сложный SQL-запрос способен заменить участок из нескольких страниц РНР-кода, обрабатывающего полученные с помощью простых запросов данные. Использовав его, вы улучшите быстродействие сайта: SQL-сервер рассчитан на выполнение обработки табличных данных, в отличие от PHP.

4. Кеширование данных

К кешированию данных сегодня прибегают практически все веб-сайты. В чём суть кеширования? При повторном заходе на определенную страницу большая часть данных загружается не с сервера, а из памяти браузера. Благодаря этому открытие страницы происходит быстрее, расход ресурсов сервера снижается, а скорость работы сайта возрастает.

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

5. Сжатие изображений

Многие люди интересуются, как уменьшить нагрузку на сайт, не углубляясь в дебри программирования. Сделать это можно, например, с помощью оптимизации картинок. Сжимайте все графические файлы, которые вы загружаете на сайт (в новые статьи, на страницы товаров и т. д). Существуют десятки популярных приложений для сжатия картинок – среди них есть как онлайн-сервисы, так и программы, устанавливаемые на компьютер. Среди последних отлично себя зарекомендовала FastStone Image Viewer.

С помощью этой программы можно сжимать изображения фактически без утраты качества. При этом FastStone ещё и советует, какой формат лучше выбрать для той или иной картинки. Программа может оптимизировать графические файлы в пакетном режиме (все за раз), экономя массу вашего времени. Есть возможность нанесения водяных знаков, обрезки всех изображений до одинакового разрешения и много других приятных фишек.

В большинстве случаев с помощью FastStone можно сократить общий объём картинок на своем сайте в 1,5, 2, а иногда – и в 4 раза! Благодаря уменьшению размера изображений страницы будут загружаться быстрей, а нагрузка на сайт снизится.

6. Другие рекомендации

  • Уменьшите скорость отдачи страниц. С помощью лимитирования скорости отдачи вы решите проблему «качалок», стремящихся в кратчайшее время обойти весь ваш ресурс и тем самым увеличивающих нагрузку на него.
  • Проверьте программный код и выясните, нет ли в нём простых ошибок. Функция, которая перебирает несколько миллионов вариантов из-за ошибки в ограничении. Постоянный редирект mod_rewrite. Исправив подобные ошибки, вы оптимизируете нагрузку сайта. Рекомендуем проверить файл error_log – есть вероятность, что существующие проблемы там упомянуты.
  • Если вы пользуетесь «тяжелой» СМS, стоит перейти на легкую современную систему.
  • Уделите внимание редизайну сайта, оптимизируйте навигацию, структурируйте существующие разделы.

Вместо заключения

Безусловно, самый простой и наименее труднозатратный способ снизить нагрузку сайта на сервер и предотвратить его блокировку хостером – перейти на более дорогой тарифный план или выделенный сервер. Делать это необходимо лишь тогда, когда посещаемость вашего ресурса выросла в разы, вследствие чего он постоянно задействует большой объем ресурсов. В остальных же случаях рациональней воспользоваться приведенными в этой статье методами. Они значительно увеличат скорость работы вашего сайта, превратив его в быстрозагружаемый ресурс, минимизируют серверную нагрузку и избавят вас от лишних трат.

  • Укажи при регистрации промокод: БЛОГ и получи 15 бесплатных лидов для теста.
  • Расскажи мне о результате и я расскажу о твоей компании в нашем блоге и соцсетях!

Check

Пиши нам в соцсетях:

vkyoutubeFacebookinstagram

С любовью,

Команда Callbackhunter

 

Вконтакте

Facebook

Twitter

Google+

callbackhunter.com

Нагрузочное тестирование сайта — Toster.ru

Если хочется просто и быстро, то вполне сгодится Apache Benchmark идущий в комплекте с веб-сервером Apache. Как-то так:

ab -n 1000 -c 10 "http://my.site.dot.com/url/path/"

Варьируя число одновременных соединений (-c 10) и общее количество запросов (-n 1000) можно примерно прикинуть когда сайт начнёт загибаться. Тестировать лучше с другой машины. Также стоит учесть, что если контент страницы меняется от запроса к запросу (динамика), то AB посчитает такие ответы сервера как Failed: www.celebrazio.net/tech/unix/apache_bench.html

Начать тестирование лучше с наиболее часто посещаемых страниц исходя из аналитики сайта, а также ориентируясь на своё понимание его структуры (если сайт самописный, то вы должны прекрасно представлять его слабые в плане производительности разделы).

Если захочется большего — смотрите более богатые по возможностям Apache JMeter или Tsung (первый графический, второй консольный). Оба умеют кластеризоваться и генерировать нагрузку с нескольких машин (для этого удобно арендовать инстансы в Amazon EC2), имеют встроенный прокси для записи пользовательских сессий и позволяют задать скорость клиентского соединения (актуально для имитации медленных клиентов и оценки влияния того же nginx).

В любом случае, перед тем как измерять производительность сайта, озаботьтесь мониторингом серверов на которых этот сайт крутится. Без этого смысла в бенчмарках очень мало — они дадут вам какие-то цифры, но дальнейшего плана действий у вас не будет. Как минимум — запустите на машинах утилиту top и смотрите загрузку CPU, потребление памяти и дисковую активность. Также после тестирования просматривайте логи на предмет появившихся ошибок (нехватку сокетов, памяти, ошибки веб-сервера или БД). Полезно включить логгирование медленных запросов в MySQL.

Дальше — устраняйте выявленные узкие места и повторяйте процесс заново, до тех пор пока не выйдете на приемлемый уровень производительности.

toster.ru

Проверяем нагрузку на сайт и повышаем его отказоустойчивость

Нагрузка на сайт — измеряемая в процентах величина, позволяющая оценить уровень использования ресурсов сервера в процессе реализации задач. Как известно, сервер располагает ограниченными ресурсами. Для выполнения любого алгоритма привлекаются незадействованные ресурсы сервера, к которым относятся объем памяти, процессор оборудования, дисковая система. Разные задачи могут использовать максимум и минимум ресурсов — от 1% до 70%. Одновременно используется и некоторый объем оперативной памяти, также может фиксироваться повышение и понижение активности в дисковой системе.

Процент потребления ресурсов сервера — и есть нагрузка сайта.

Если не контролировать данный параметр, то о превышении допустимой нагрузки на сайт вы все равно узнаете — уведомление придет от хостера. Только хостер не является вашим аудитором. Скорее, наоборот — за максимально допустимое превышение величины он в одностороннем порядке заблокирует доступ к площадке.

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

А самое главное — контролируя и снижая нагрузку на сервер, создаваемую сайтом, вы минимизируете траты на услуги хостинга.

Так выглядит статистика хостинга в случае повышенной нагрузки на сервер. Источник: alexandrshikhov.ru.

Правда о входящем маркетинге

Причины снижения отказоустойчивости сайта

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

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

Отказоустойчивость сайта снижается, если страницы портала активно исследуются роботами от поисковых систем. Это легко исправить, разместив в корневом каталоге площадки файл robots.txt. Таким образом вы можете ограничить перечень URL страниц, нуждающихся в индексировании. Это же позволит выборочно запретить обход поисковых систем нерелевантных страниц, а также выбрать боты (по именам), для которых доступ для обхода сайта будет полностью закрыт. Если какой-то каталог сайта должен быть исключен из индекса (к примеру, архивные каталоги, фотогалереи, списки пользователей и др.), это так же легко настраивается: укажите в файле робота объект, и он станет невидимым для него.

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

Одной из причин повышенной нагрузки на веб-серверы может стать применение устаревшей версии скриптов, к примеру, неактуальный скрипт интернет-магазина (Shop-Script). Некоторые из них плохо подходят для обработки большого количества информации и работы с крупными каталогами с длинным списком товаров, поэтому и создают излишнюю нагрузку сайта на сервер. Чтобы решить проблему, просто обновите скрипты до новой современной версии.

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

Статистика DDoS-атак с применением ботнетов в последнем квартале 2015 и первом квартале 2015. Источник: securelist.ru/blog (Лаборатория Касперского).

Ценообразование в интернет-магазине

Как рассчитывается нагрузка

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

Во время выполнения какого-либо процесса система регистрирует, сколько процессорного времени (в секундах) тратится на выполнение задачи.

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

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

Если опыта не хватает, можно доверить процесс проверки сайта специальным онлайн-сервисам. Их в Интернете довольно много — с разным функционалом и разными тарифами. Есть и бесплатные.

Шрифты для онлайн-проекта: заплатить или сэкономить?

Сервисы нагрузочного тестирования сайтов

Онлайн-сервисы для оценки и тестирования доступности сайтов — довольно удобное изобретение. Достаточно ввести в специальное поле адрес портала и нажать «Проверить».

Loadimpact.com — сервис предоставляет возможность бесплатного тестирования сайта на 50 соединений, остальной функционал и большая нагрузка — платно.

Alertra.com — предоставляет бесплатную возможность проверить доступность сайта из десятка разных мест.

Site24x7.com — аналогичный предыдущему. Но используются 23 географические точки для проверки.

Builtwith.com — сообщит все о заданном для проверки сайте.

Onlinewebcheck.com — анализирует и предлагает подробные рекомендации по устранению ошибок на сайте.

Tools.pingdom.com — тестирует скорость загрузки каждого элемента сайта: images, frames, JavaScripts, RSS, CSS, Flash. Результат сообщается в секундах.

Pagescoring.com — тоже оценивает результат каждого объекта на сайте по отдельности и выводит среднюю величину.

Webtoolhub.com — после проверки сервис дает рекомендации: если скорость загрузки веб-сайта занимает более 8 секунд, то пора заняться оптимизацией содержимого площадки. Тестирование не включает оценку времени загрузки изображений, видео и других графических элементов на сайте.

Rapid.searchmetrics.com — выводится итоговая таблица с результатами мониторинга загрузки и дается подробная разбивка по каждому объекту (CSS, JavaScript и Images).

Gtmetrix.com — развернутый отчет по загрузке в разных странах мира. Информация представлена детально для оценки пользователя.

Sitespeed.me/ru — русскоязычный сервис быстрой проверки. За несколько секунд можно получить главную информацию: врем загрузки, размер объекта и скорость.

Webpagetest.org — результат тестирования сайта отображается в виде подробного графика с разверсткой по каждому объекту.

Таблицы и графики с результатом тестирования сервисом Webpagetest.org.

В сети можно найти еще множество сервисов с разными опциями. Выбор не ограничивается приведенным в статье списком.

Минимизируйте когнитивную нагрузку для оптимизации юзабилити и конверсии лендинг пейдж

Как уменьшить нагрузку на сайт

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

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

Повышенную нагрузку нередко провоцирует неэффективная логика запросов mysql в скрипте. Изучите документацию и способы обработки баз данных и минимизируйте количество запросов. Займитесь и оптимизацией скриптов на сайте.

Нельзя игнорировать применение и настройки robots.txt. Следите за оповещениями от Google и Yandex, в которых предупреждается о возможном взломе вашего сайта.

Также следует позаботиться о реорганизации сайта: редизайне; выстраивании навигации; объеме, количестве и формате картинок; структурировании и иерархии при публикации информации.

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

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

Image source: Marie Therese Magnan

saas.ru

Откуда берется нагрузка на хостинг и сайт

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

Обычно о превышении нагрузки веб-мастера узнают от своих хостеров, которые строго регламентируют и контролируют процесс потребления процессорного времени и на уровне тарифного плана задают ту допустимую нагрузку, которую может создавать аккаунт (обычно она измеряется в % от некоторого разрешенного значения или в CP/процессорных минутах).

Хостер старается равномерно распределить ресурсы процессора среди всех клиентов сервера. Если чей-то аккаунт хостинга будет “съедать” 90% процессорных ресурсов, то остальным достанется только 10%. Поэтому в подобных случаях владельцу аккаунта, превышающего лимиты, придет предупреждение. А при систематических нарушениях аккаунт блокируется, чтобы не мешать работе других сайтов, расположенных на том же сервере. И это, отнюдь, не попытка “развести” клиента на более дорогой тариф, как думают некоторые веб-мастера, поскольку не хостер виноват в том, что сайту с некоторого времени потребовалось больше ресурсов.

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

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

Внешние факторы 

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

  1. Сканирование сайта на уязвимости, поиск "чувствительных файлов", поиск панели администратора.Любой сайт, страницы которого проиндексированы в поисковой системе, может стать “мишенью” для хакеров и ботов, его ежедневно кто-то будет сканировать, искать “дыры”, пытаться взломать. Остановить этот процесс невозможно, но можно ему противодействовать. Запросы к сайту, особенно если они выполняются интенсивно и методом POST, потребляют много процессорных ресурсов. Поэтому процесс сканирования сайта внешним сканером выражается в росте нагрузки. Если в результате сканирования злоумышленник обнаружит уязвимость или вариант взлома сайта, то вероятнее всего на сайт он загрузит вредоносный код или совершит какие-то деструктивные действия. Если никаких проблем безопасности в результате сканирования выявлены не будут, то сайт продолжит работать в штатном режиме, а нагрузка вернется к нормальному значению. До следующего сканирования…
  2. Подбор пароля от админ-панели сайта (брутфорс-атака).Одной из популярных атак, целью которой является получение административного доступа с помощью перебора популярных комбинаций логинов/паролей администратора, является атака вида «брутфорс». Хакерский бот использует специальный словарь с TOP1000 популярных комбинаций (admin/admin, admin/123456,…) и пробует зайти с ними в административную панель сайта. Сам процесс перебора повышает нагрузку, так как на страницу административной панели идут постоянные обращения, причем запросы выполняются ресурсоемким методом POST.
  3. Массовая регистрация пользователей или массовая отправка спама через незащищенные формы обратной связи.

    Часто на сайтах используются формы обратной связи или формы регистрации пользователей со слабыми механизмами защиты от ботов. Хорошо, если на форме установлена хоть какая-то “капча” из серии “докажи, что ты не бот”. Если сайт попал в базу спаммеров, а «капчи» или другого механизма защиты от “http флуда” нет, то начинается массовая регистрация пользователей со спам-профилями, отправка почты через форму и т.п. Все это создает нагрузку на хостинг, и кроме того, может провоцировать спам-рассылку, за которую хостинг-компания отключает почтовый сервис или блокирует сайт полностью.

    Следует отметить, что в настоящий момент все простые защитные механизмы без труда обходятся современными ботами, поэтому необходимо сразу устанавливать что-то серьезное, например, Google Recaptcha2.

  4. Индексирование сайта поисковыми ботами.

    Иногда при достаточно большом поисковом индексе (когда в поисковую базу Яндекса и Google попадает большое число страниц), процесс переиндексации может занимать длительное время и создавать большую нагрузку на сервере. Если на вашем сайте всего десяток страниц, вы также можете столкнуться с подобной проблемой, например, если сайт был взломан и на нем размещен дорвей на 50 000 страниц, которые попали в поисковую выдачу. Или поисковый индекс мог заспамить конкурент, который воспользовался ошибками в работе скриптов вашего сайта. Вариантов здесь масса.

  5. Граббинг и скраббинг контента.

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

  6. Импортирование данных (фиды, выгрузка товарных позиций).

    Часто e-commerce ресурсы используют механизм обмена данными с внешними сервисами. Например, из интернет-магазинов может выгружаться список товарных позиций, в них могут загружаться данные из 1С, у новостных сайтов может происходить регулярный экспорт новостных фидов и пр. Если контент не статический, то каждый такой запрос будет создавать высокую нагрузку на сервер.

  7. Использование картинок или ссылок на ваш сайт.Одним из неочевидных моментов, создающих нагрузку, может быть размещение ссылки на сайт или использование изображения с сайта на более посещаемом ресурсе. Один из источника проблемы – это так называемый “хабраэффект”, когда сайт не справляется с потоком посетителей с более популярного ресурса. Второй вариант – когда кто-то (или вы сами) разместили на посещаемом блоге (например, в комментариях) картинку со своего сайта, и она загружается у каждого посетителя и создает нагрузку на ваш хостинг. Особенно это может создавать серьезные проблемы в том случае, если картинка генерируется скриптами (например, масштабируется с помощью скриптов timthumb/phpthumb).
  8. Атаки на другие сайты (например, уязвимость в xmlrpc.php).

    Часто сайты, содержашие уязвимости, используются хакерами для проведения атак на другие ресурсы. Иногда для этого злоумышленнику даже не требуется взламывать сайт. Например, с этой проблемой могут столкнуться владельцы не самых свежих версий Wordpress (атака через файл xmlrpc.php). Ваш сайт в данном случае будет выступать промежуточным звеном, а работа скриптов сайта создавать большую нагрузку на сервере.

  9. DDOS-атакаЕсли на сайт идет DDOS-атака, то без подключения специальных технических средств, проксирующих трафик (услуга хостинга или сервиса защиты от DDOS), справиться с ней не удастся.  Не заметить DDOS достаточно сложно.  Из-за того, что на сервер будет создаваться огромная нагрузка, хостер может поступить по-разному: предложить услугу защиты от DDOS, перенести сайт на другой сервере или полностью заблокировать (отключить) сайт. Поэтому для защиты от DDOS желательно иметь заранее заготовленное решение, чтобы при возникновении проблемы оперативно ее решить.
  10. Рост посещаемости

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

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

    В результатах анализа следует посмотреть TOP 20 запросов методом POST, TOP 20 запросов методом GET/HEAD, TOP 20 IP адресов по числу хитов, TOP 20 ссылающихся страниц по числу хитов. Все это позволит выявить источник и тип трафика, а также точки входа на сайт или скрипты, которые вызываются чаще всего. Скорее всего они и будут причиной высокой нагрузки.

    Для снижения нагрузки при внешних атаках или интенсивных запросах в большинстве случаев достаточно включить защиту от http флуда (например, классический “куки на клиенте + редирект с проверкой”) или подключить сайт к сервисам проксирования трафика, которые будут блокировать опасные или особо активные запросы, а хорошие и легитимные - пропускать. Кроме того, статический контент (картинки, скрипты и стили) будут отдаваться не с вашего сайта, а с CDN-серверов, что также существенно снизит нагрузку. Можно попробовать подключить кэширующий плагин в CMS или кэширующий сервис на хостинге, но в случае внешних факторов, влияющих на нагрузку, это может и не помочь. 

Внутренние факторы

Ко внутренним факторам можно отнести все то, что влияет на производительность сайта на уровне скриптов и настроек. То есть то, что поддается контролю со стороны веб-мастера (владельца сайта).

  1. Неоптимизированные скрипты и разросшаяся база данных.Из-за неграмотно спроектированной архитектуры веб-приложения или неэффективной реализации скриптов неопытными разработчиками возможен случай, когда простое открытие стартовой страницы или отображение результатов поиска на сайте может серьезно нагружать сервер. А рост объема базы данных (например, увеличение числа товарных позиций) с каждым обновлением сайта будет его все больше замедлять, увеличивая нагрузку на хостинг. Отдельные страницы сайта с большим числом информационных блоков могут отправлять по несколько десятков запросов к базе данных, многократно выполнять одни и те же операции с файлами, а иногда даже блокировать работу других элементов сайта. Мы часто сталкиваемся с подобной проблемой у интернет-магазинов, работающих на старой версии Joomla с плагином Virtuemart. В некоторых случаях при открытии страницы каталога выполняется более 100 запросов к базе данных.
  2. Заражение сайта вирусамиВзлом и заражение сайта вредоносными скриптами является достаточно частой причиной роста нагрузки. Она увеличивается из-за вирусной активности, возникающей из-за внедрения вредоносных фрагментов в легитимные скрипты сайта, запуска и работы резидентных процессов, а также подключения скриптов к внешним ресурсам в момент открытия любой страницы сайта.
  3. Внешние легитимные подключения к сторонним ресурсамМало кто принимает во внимание нагрузку, которую создают подключения к внешним источникам информации (виджеты, информеры погоды и курса валют, новостные фиды и пр). Часто данные, которые загружаются с других сайтов, не кэшируются локально и в момент открытия страницы каждый раз происходит подключение и загрузка контента с другого сервера. Если по какой-то причине внешний источник перестает быстро отвечать, это повлияет на нагрузку и скорость загрузки основного сайта.
  4. Ошибки в работе скриптовПри работе скриптов могут возникать ошибки, которые не отображаются посетителям, но записываются в лог веб-сервера или лог php. Если сайт посещаемый или ошибок много, это также может увеличивать нагрузку на хостинг. Чаще всего ошибки начинают генерироваться в момент переключения сайта на более свежую версию PHP, с которой скрипты не совместимы. Или когда обновляются не все компоненты сайта, и возникают конфликты между новым ядром CMS и старыми версиями плагинов. 

Для анализа проблемы высокой нагрузки, вызванной внутренними факторами, требуется выполнить проверку сайта на наличие вредоносного кода (например, проверить сайт бесплатным сканером AI-BOLIT), и, если вредоносного кода не обнаружено, то выполнить профилирование работы скриптов с помощью модулей xhprof или xdebug.

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

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

Продолжительность

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

Если на графике потребления процессорного времени вы видите разовый скачок, то не стоит волноваться. Он практически незаметен, не влияет на доступность сайта и не мешает “соседям” по хостингу. Хуже, если график длительное время ползет вверх или в течение нескольких дней показывает предельную  (или превышающую лимит) загрузку процессора. Что делать в этом случае? Необходимо проводить аудит сайтов на аккаунте так, как это было описано выше, проверяя как внешние, так и внутренние факторы, вызывающие проблемы.

Обсуждаем и комментируем

revisium.com

Нагрузка на сайт — откуда что берется?

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

Откуда берется нагрузка на сайт?

Для начала давайте определимся с терминологией. Что мы будем понимать под нагрузкой на сервер или в нашем случае — нагрузкой на сайт?

Что такое нагрузка на сервер?

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

Как правило, у хостера, в зависимости от того или иного тарифного плана, имеются некоторые лимиты на использование ресурсов одним сайтом, но... Имеется и одно "но"! Во время пиковых нагрузок на один из соседних сайтов, сервер не ограничивает его в ресурсах, если таковые находятся в незанятом состоянии.  Откуда берутся свободные ресурсы? Все очень просто. Не все сайты постоянно используют все, что им положено по тарифу. Некоторые задачи требуют 2-3% процессорного времени и затрат оперативной памяти, другие же задачи, требующие  сложных вычислений, занимают 60-70% и более. Отдавая нагрузку то одним, то другим сайтам, сервер обеспечивает бесперебойную работу всех сайтов. Ну это, как бы в идеале.

Итак, договорились. Нагрузка на сервер (нагрузка на сайт) — это процент использования ресурсов сервера.

От писем "счастья" до блокировки аккаунта

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

В каких единицах считают нагрузку на сервер?

Статическая нагрузка

Статическую нагрузку считают в единицах CP. Что это такое?

CP — это абстрактная величина характеризующая количество процессорного времени потраченного процессорами на обработку процессов пользователей, получаемая стандартными средствами ядра linux. 

Однако, вычислить по формуле данную величину вряд ли удастся. Подсчитывается она по многим параметрам — тут и посещаемость сайта и то, какие блоки и какой сложности, включены на сайте. Я уже писал однажды, что при тарифе в 50 PC хостер обещал мне ежедневную посещаемость в :

"Точное число сказать очень сложно, поскольку это в большей степени зависит от оптимизации скриптов сайта. Как правило число вариируется от 500 до 3000."

Нагрузка на MySQL

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

На моем тарифе эта величина равна 1000 единиц, но до сих пор больше 12 не поднималась.

 На сегодня, думаю, достаточно. Тема довольно сложная для понимания — нагрузка на сайт, вернее на сервер, так, что лучше понемногу. Но вперед!

В обсуждении рождается истина!

 

vseohostinge.ru

Сервисы для тестирования сайтов под нагрузкой и проверки доступности

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

Вы сделали сайт, разместили его на хостинге, и хотите посмотреть, как он работает под реальной нагрузкой. Как создать нагрузку на сайт, чтобы выявить слабые места? Для этого можно воспользоваться онлайновыми сервисами, которые создадут множество различных запросов к сайту из разных мест, и таким образом будут имитатором реальной нагрузки, которую могут создать посетители. Такая нагрузка позволит отследить, как ведет себя сайт на хостинге, отвечает ли хостинг заявленным параметрам, есть ли у сайта места, требующие оптимизации.

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

LoadImpact

Сервисы для тестирования сайтов

Один из самых продвинутых сервисов, создающих различную нагрузку на сайт. У него есть бесплатный и платный режим работы. Бесплатно сервис создает 50 одновременных соединений, платно — до 5 тысяч. По результатам работы сервис показывает различные данные — скорость соединения, время отклика, скорость передачи данных, доступность из разных мест земного шара, и многое другое.

Посмотреть

LoadImpact

вы перейдете по ссылке http://loadimpact.com/

Alertra

Сервисы для тестирования сайтов под нагрузкой и проверки доступности

Сервис позволяет проверять доступность сайта из 10 различных мест. Так же мониторит аптайм, показывает время ответа.

Посмотреть

Alertra

вы перейдете по ссылке http://alertra.com/

site24x7

Сервисы для тестирования сайтов под нагрузкой и проверки доступности

Бесплатный вариант сервиса проверяет доступность сайта в течение 10 минут. Платные варианты позволяют проверять доступность круглосуточно и все время. Есть варианты подключения нескольких сайтов и множества мест проверки.

Посмотреть

site24x7

вы перейдете по ссылке http://site24x7.com/

Panopta

Сервисы для тестирования сайтов под нагрузкой и проверки доступности

Сервис осуществляет мониторинг аптайма сайта, его доступность из различных мест (более 30). Запросы посылаются каждые 60 секунд.

Посмотреть

Panopta

вы перейдете по ссылке http://www.panopta.com/

host-tracker.com

Сервисы для тестирования сайтов под нагрузкой и проверки доступности

Сервис осуществляет всесторонний контроль за сайтом. Он проверяет доступность сайта из множества контрольных точек (более 50), проверяет HTTP/HTTPS, PING, SMTP, SNMP, TCP порт, проверяет наличие ключевого слова на странице. Частота мониторинга настраивается (от 1 минуты), формируются подробные отчеты, которые можно экспортировать в PDF, XML или CSV. При возникновении проблем вы получаете моментальное уведомление по электронной почте, через Skype, SMS и телефонный звонок.

Посмотреть

host-tracker.com

вы перейдете по ссылке http://www.host-tracker.com/

n-wp.ru

Чрезмерная нагрузка на сервер - что делать?

Привет дорогие читатели, сегодня я открываю цикл статей, который будет интересен всем владельцам сайтов и блогов, планирующим вывести свою посещалку на 1000 уников в сутки  и более. При достижении заветной 1000 человек в день, через какое-то время, всё зависит от хостинга — вы встретитесь с подобным запросом: Чрезмерная нагрузка на сервер!

dofollow2

И получите письмо примерно такого содержания:

Здравствуйте!

Обращаем Ваше внимание, что Ваш аккаунт оказывает чрезмерную нагрузку на сервер.

Нагрузка на CPU характеризует суммарное время, затраченное процессорами сервера на обработку процессов аккаунта. Для снижения нагрузки следует оптимизировать скрипты, исключить выполнение требующих значительных вычислительных ресурсов процессов.

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

По данным статистики нагрузка на сервер:Дата, нагрузка на CPU, нагрузка на MySQL2014-03-09 144.83cp 212014-03-08 50.33cp 342014-03-05 111.85cp 9— что превышает допустимые значения на текущем тарифном плане: нагрузка на CPU до 50 cp, MySQL до 1000.

Мы можем предложить Вам следующие варианты решения сложившейся ситуации:1. Устранить источник нагрузки, самостоятельно оптимизировав сайты, используя средства CMS, либо специализированное ПО (профайлеры, фреймворки) на локальном компьютере.2. Обратиться к соответствующим специалистам для снижения оказываемой нагрузки, в случае если Вы не готовы самостоятельно произвести оптимизацию.3. Рассмотреть вариант перехода на тарифный план с более высокими ограничениями (Eterno, Premium, Битрикс.1Сайт), либо на техническое решение без ограничений по нагрузке (выделенный или виртуальный сервер).

Статистически, рост нагрузки чаще всего возникает по одной из следующих причин:1) рост посещаемости;2) использование неоптимизированных скриптов;3) отключение кеширования;4) действие вредоносного кода;5) нежелательная активность поисковых или иных ботов;6) увеличение объёма обрабатываемых данных.

В течение 3 дней (до 2014-03-13 включительно) Вам необходимо снизить создаваемую нагрузку до ограничений тарифного плана, после чего проконтролировать создаваемую аккаунтом нагрузку; либо принять решение об адекватной смене условий размещения. Если по истечении этого срока будет по-прежнему наблюдаться повышенная нагрузка, мы будем вынуждены приостановить работу аккаунта. Также мы будем вынуждены приостановить работу в том случае, если нагрузка будет вызывать нестабильную работу сервера.

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

Дочитали письмо до конца? Правда — страшно? Ваш сайт оказывает чрезмерную нагрузку на сервер, а Вы даже не знаете как с этим бороться. И если в течении энного количества дней не устраните нагрузку, то любимый сайт просто отключат. Или нужно будет переходить на более дорогостоящий тарифный план, который по экономическим причинам вас лично никак не устраивает!

Что делать? Что это за чрезмерная нагрузка на сервер и как с ней бороться?

График нагрузки на моем хостинге в конце декабря 2013 года, показанный на рисунке выше реальный. Т.е. допустимую моим тарифным планом норму нагрузки в 50 CP мой аккаунт состоящий из 5-ти блогов превысил в примерно в 140 раз перевалив за отметку нагрузки на CPU в 7000 CP. Тут реально в пору задуматься — что произошло и почему появилась такая большая нагрузка. 

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

В итоге, я перенес свой блог на выделенный сервер находящийся в Голландии, и теперь сплю спокойно, зная, что мой блог никто не отключит. Потому что, какая бы не была ddos-атака, или иная ситуация, вызывающая чрезмерную нагрузку на сервер, теперь у меня собственный хостинг, созданный на виртуальной машине, на базе линукса. И если эта нагрузка вешает мой сайт, я нашел бесплатный сервис, который в течении 15 минут перегружает его, и он — любимый снова работает! 🙂 Что позволяет мне спокойно путешествовать, по неделе не имея интернета, не волноваться, что мой блог упал и не работает.

А как я получил столь бесценный опыт, я обязательно хочу рассказать Вам в ближайших статьях. А сейчас начну с самого начала — что нужно делать, если чрезмерная нагрузка на сервер случилась у Вас?

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

Как выяснить откуда идет нагрузка? Я сам думал несколько дней — что делать, среди моих знакомых блоггеров никто не сталкивался с превышением стандартной нагрузки аж в 140 раз. Нашлось самое оптимальное решение, которое я рекомендую всем. Первым делом, для определения источника нагрузки, нужно просмотреть так называемые лог-файлы. На моем хостинге в панели управления их можно включить в разделе — Управление лог-файлами:

nagruzkanaserver2

 

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

lifewithoutdrugs.org 95.25.125.228 - - [14/Dec/2013:12:46:18 +0400] "GET /pervyj-perelet-s-nashim-lyubimym-grudnichkom/img/pix.png HTTP/1.0" 404 6496 "http://lifewithoutdrugs.org/pervyj-perelet-s-nashim-lyubimym-grudnichkom/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" lifewithoutdrugs.org 91.221.60.82 - - [14/Dec/2013:12:46:19 +0400] "GET /velikij-shelkovyj-put/img/pix.png HTTP/1.0" 404 6496 "http://lifewithoutdrugs.org/velikij-shelkovyj-put/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" lifewithoutdrugs.org 118.173.253.70 - - [14/Dec/2013:12:46:19 +0400] "GET /pumipon-adulyadet-rama-9-king-tailanda/img/pix.png HTTP/1.0" 404 6497 "http://lifewithoutdrugs.org/pumipon-adulyadet-rama-9-king-tailanda/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" lifewithoutdrugs.org 121.32.89.84 - - [14/Dec/2013:12:46:19 +0400] "GET /straxi-puteshestviya-i-kak-ot-nix-izbavitsya/img/pix.png HTTP/1.0" 404 6495 "http://lifewithoutdrugs.org/straxi-puteshestviya-i-kak-ot-nix-izbavitsya/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" lifewithoutdrugs.org 46.147.208.192 - - [14/Dec/2013:12:46:20 +0400] "GET /kak-peredvigatsya-po-indii-ili-transport-v-indii/img/pix.png HTTP/1.0" 404 6494 "http://lifewithoutdrugs.org/kak-peredvigatsya-po-indii-ili-transport-v-indii/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" lifewithoutdrugs.org 118.173.52.225 - - [14/Dec/2013:12:46:20 +0400] "GET /provinciya-krabi-poselok-ao-nang/img/pix.png HTTP/1.0" 404 6498 "http://lifewithoutdrugs.org/provinciya-krabi-poselok-ao-nang/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63

Обычно если писать лог-файл за день, да еще и с атакой, то он может за 24 часа получиться очень весомых размеров до сотни мегабайт. Т.е. несколько тысяч строк, которые показаны выше. Как разобрать такой огромный файл? И как понять — где же источник нагрузки?Для начала нужно уметь прочесть каждую строку нашего лог-файла, вот возьмем к примеру такую строку:

lifewithoutdrugs.org 91.221.60.82 - - [14/Dec/2013:12:46:21 +0400] "GET /velikij-shelkovyj-put/img/pix.png HTTP/1.0" 404 6496 "http://lifewithoutdrugs.org/velikij-shelkovyj-put/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"

Сначала показан домен моего блога, далее цифры «91.221.60.82» — это IP-адрес, с которого пришел запрос, далее показан путь самого запроса, в данном случае обращение к графическому файлу pix.png, далее идет код ответа моего сайта — 404 (в данном случае ошибка — страница не найдена). Дальше, можно узнать сведения из какого броузера пришел запрос и какое устройство использовалось для входа в интернет.

Для анализа лог-файлов самые важные данные в этой строке: путь запроса, код ответа сервера. Именно эти данные помогут понять — что происходит и что с этим делать, а IP-адрес может нам пригодится для того, чтобы блокировать нежелательные для нашего сайта запросы.

Это простая теория, а как же разглядеть и понять — что происходит на сайте, если таких строк может быть несколько тысяч в день? Я сам пару дней думал над этим вопросом. Ведь, даже имея аналитический склад ума трудно увидеть в тысячах строк какие-то закономерности. Тут мне на помощь пришла забавная программа для анализа лог-файлов. 🙂

Забавна она тем, что в отличии от подобных программ, выглядит в виде старинной электронной игры —  и графически показывает каждое из этих тысяч обращений на сервер в реальном времени. Т.е. скачав свой лог-файл и запустив его в этой программе, вы увидите — с каких IP приходят запросы, на какие пути они приходят чаще всего, и самое главное — какой ответ сервера эти запросы получают.

Запустив эту программу, я сразу понял, в чем причина моих проблем. Одни и те же IP долбили несуществующие картинки на моем блоге и получали в ответ очень не хороший отклик — 404 (ошибка на сервере). И этих запросов было по 5-10 в несколько секунд, отсюда и превышение нагрузки на сервер в 140 раз. Данная программа называется логстальгия и выглядит вот так:

logstalgia

В левом верхнем углу показано реальное серверное время и дата, слева вылетают шарики (запросы от определенных IP) и летят направо в сторону определенных путей сайта. И эти шарики отбивает бита, которая символизирует сам сервер. При каждом отбитии шарика показывается код ответа сервера, на данном рисунке 200 (ответ — ок). Если к примеру происходит ошибка 404 или любой другой не очень хороший ответ сервера, то шарик не улетает в обратную сторону, а улетает вправо, как раз и создавая нагрузку на сервер. Программа бесплатная и скачать ее можно прямо здесь — logstalgia-1.0.3.win32.

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

На этом на сегодня всё, постараюсь почаще выходить на связь, поэтому, продолжение этой серии статей следует…

По традиции пару слов о себе и своей путешествующей семье. Мы прилетели на любимый остров Бали, настроили здесь свой быт и теперь можем и отдыхать и работать! Шлю вам балийский привет!

Я и дочь в нашем традиционном балийском доме

Мы с дочкой

Если у Вас есть свои решения, дополнения — как бороться с нагрузкой создаваемой сайтом, пишите в комментариях, обмен опытом еще никому не вредил! 🙂

TimeWeb - мощный хостинг для вашего сайта

howmakeit.ru