Получение письма от хостинг-провайдера, информирующего о превышении допустимой нагрузки на сайт – не самое приятное событие для владельца сайта. В таком случае остаётся только 2 варианта избежать блокировки ресурса и других неприятных последствий – подключить более дорогой тариф или попытаться уменьшить нагрузку самостоятельно. Давайте же узнаем, как выполняется проверка нагрузки сайта и её снижение.
Содержание
Что такое нагрузка на сайт и зачем за ней следить?
Почему сайт начинает работать медленно?
Методы анализа нагрузки на сайт
- Ограничение для роботов поисковых систем
- Структурирование ресурса
- Оптимизация программного кода
- Кеширование данных
- Сжатие изображений
- Другие рекомендации
Что такое нагрузка на сайт и зачем за ней следить?
Нагрузка – параметр, который показывает уровень расхода ресурсов сервера при функционировании сайта. Для выполнения какой-либо функции сайта привлекаются свободные возможности сервера: задействуются его ОЗУ, место на дисковой системе, работает процессор. Собственно, значение нагрузки и показывает, сколько процентов ресурсов сервера расходуется сайтом.
Во время работы ресурса сервер постоянно отслеживает время выполнения задач. Поэтому, даже если вы не мониторите нагрузку, хостер уведомит вас о её превышении. После нескольких предупреждений хостер может без вашего ведома заблокировать доступ к сайту, чтобы тот не мешал нормальному функционированию других ресурсов, размещённых на сервере.
Помимо блокировки, превышение допустимой нагрузки чревато нестабильной работой вашего сайта. Это приводит к увеличению количества отказов клиентов – если страницы загружаются слишком медленно, многие пользователи просто покинут ваш сайт. В свою очередь, рост процента отказов ухудшает репутацию вашего сайта у поисковиков, из-за чего из них к вам приходит меньше клиентов.
Благодаря оптимизации нагрузки на сайт вы сможете и немного сэкономить, уменьшив расходы на хостинг.
Почему сайт начинает работать медленно?
Высокая нагрузка сайта на сервер может возникать, если вы подключены к неподходящему тарифу. Когда ресурс приобретает популярность, нагрузка на него возрастает из-за увеличения посещаемости. Заметив резкое увеличение объёма потребления ресурсов со стороны какого-либо сайта, хостинг-провайдер может временно ограничить доступ к нему. Рекомендуем постоянно следить за среднесуточной посещаемостью сайта и при необходимости переходить на более дорогой тариф (для смены тарифного плана достаточно связаться с хостером).
Помимо роста популярности, увеличение нагрузки ресурса на сервер наблюдается при неожиданном попадании в топ раздачи поисковых систем одного или нескольких частотных запросов. Часто к этому приводят внешние факторы – демонстрация по телевидению программы аналогичной тематики, размещение на сайте актуальных новостей и т.п. Активная гиперссылка на ваш ресурс, размещённая на крупной площадке, также может привести к стремительному росту посещаемости.
Отказоустойчивость веб-сайта уменьшается и в том случае, когда его страницы постоянно исследуются роботами. Устранить эту проблему нетрудно: достаточно создать разместить в корневой папке ресурса текстовый файл 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, стоит перейти на легкую современную систему.
- Уделите внимание редизайну сайта, оптимизируйте навигацию, структурируйте существующие разделы.
Вместо заключения
Безусловно, самый простой и наименее труднозатратный способ снизить нагрузку сайта на сервер и предотвратить его блокировку хостером – перейти на более дорогой тарифный план или выделенный сервер. Делать это необходимо лишь тогда, когда посещаемость вашего ресурса выросла в разы, вследствие чего он постоянно задействует большой объем ресурсов. В остальных же случаях рациональней воспользоваться приведенными в этой статье методами. Они значительно увеличат скорость работы вашего сайта, превратив его в быстрозагружаемый ресурс, минимизируют серверную нагрузку и избавят вас от лишних трат.
Проверь Callbackhunter на своей шкуре!
- Укажи при регистрации промокод: БЛОГ и получи 15 бесплатных лидов для теста.
- Расскажи мне о результате и я расскажу о твоей компании в нашем блоге и соцсетях!
Пиши нам в соцсетях:
С любовью,
Команда Callbackhunter