Использование ресурсов хостинга

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

  1. Отключение неиспользуемых модулей веб-сервера Apache и расширений модуля PHP
  2. Анализ лог-файлов сайта
  3. Проверка работы скриптов сайта со сторонними серверами
  4. Анализ работы скриптов сайта и запросов к базе данных MySQL
  5. Анализ верстки сайта
  6. Проверка сайта на наличие вредоносного кода


Статистика использования ресурсов хостинга


На каждой услуге виртуального хостинга Руцентр ведётся учёт использования следующих ресурсов:

  1. Оперативная память — размер выделенной памяти для работы программного обеспечения на хостинге, устанавливается в мегабайтах в соответствии с тарифным планом.
  2. Процессорное время — время в секундах, которое потратил процессор сервера на выполнение задачи, например, скрипта сайта. Значение лимита 50% на процессорное время в тарифном плане означает, что за период в 1 минуту скрипт может полностью использовать 1 ядро процессора в течение 30 секунд. Лимит 200% означает, что за период в 1 минуту допустимо использовать полностью 2 ядра процессора, то есть 120 секунд процессорного времени.
  3. Число дисковых операций — количество операций ввода-вывода, выполняемых системой хранения данных за минуту.
  4. HDD чтение — скорость чтения информации с диска сервера, мегабайт в минуту.
  5. HDD запись — скорость записи информации на диск сервера, мегабайт в минуту.

Информация об использовании ресурсов размещена в разделе РесурсыСтатистика панели управления хостингом.

При нажатии на график происходит переход к детальной информации по использованию отдельного ресурса:

При наведении курсора на точку графика, вы увидите потребление ресурсов в этот момент времени.


Причины повышенного потребления ресурсов


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

Основные причины повышенного потребления ресурсов:

  1. Использование ресурсоёмкой CMS, например 1C-Bitrix. 
  2. Высокая посещаемость сайта. В этом случае рекомендуем переход на высокопроизводительный тариф виртуального хостинга или VDS.
  3. Неоптимизированные скрипты на сайте — скрипты, алгоритм выполнения которых является неэффективным. Например: подсчёт заведомо известных данных, неоптимальные методы расчёта, лишние циклы и др.
  4. Неоптимизированные запросы к базе данных MySQL. Проблемы могут возникать из-за неправильно сформированных индексов, большого объёма выбираемых данных, большой вложенности запроса и т.д.
  5. Активность поисковых роботов. Роботы могут замедлять работу сайта, если их много и они проводят одновременное сканирование для обновления своей поисковой базы. 
  6. Вредоносный код на сайте. Нагрузка на сервер может быть вызвана работой вредоносных скриптов на хостинге.

Способы снижения потребления ресурсов


1. Отключите неиспользуемые модули веб-сервера Apache и расширения модуля PHP


В панели управления хостингом вы можете управлять конфигурацией вашего веб-сервера Apache и модуля PHP.

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

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

По умолчанию на хостинге включены модули Apache: auth_module, cgi, realip_module, rewrite_module, autoindex_module, env_module, expires_module

Проверьте, включены ли у вас следующие модули Apache и отключите их: для работы большинства сайтов на PHP и MySQL они не требуются. Сделать это можно в разделе Управление веб-сервером  → Управление модулем PHP панели управления хостингом. Для просмотра списка модулей необходимо нажать на ссылку Управление расширениями.

  • FastCGI — требуется, если вы самостоятельно устанавливаете на хостинге какое-либо программное обеспечение, работающее в качестве FastCGI-сервера.
  • gzip_module — требуется, если вы настраиваете gzip-сжатие. Помимо включения модуля требуется дополнительная настройка сжатия в файле .htaccess. Отключите модуль, если вы не пользуетесь данной функциональностью.
  • mime_magic_module — позволяет веб-серверу определять mime-типы файлов, для работы большинства сайтов достаточно стандартного mime_module. 
  • Perl — он же mod_perl, требуется для работы perl-скриптов, специально написанных под mod_perl. Для запуска perl-скриптов в большинстве случаев используется модуль CGI (см. статью Perl и CGI программы — особенности использования).
  • proxy_module — требуется, если вы планируете настроить проксирование запросов с помощью веб-сервера apache.
  • bandwidth_module, usertrack_module, speling_module, limitipconn_module — эти модули потребляют небольшой объем памяти, но их функциональность большинству сайтов не требуется, поэтому их также можно отключить.

Управление расширениями модуля PHP производится в разделе панели управления хостингом Управление веб-сервером → Управление модулем PHP в соответствии с инструкцией Выбор версии и расширения PHP.

Мы рекомендуем проверить следующие расширения модуля PHP, возможно часть из них не нужна для работы ваших сайтов:

  • Eaccelerator, APC — кэшируют данные в оперативной памяти, поэтому требуют большое ее количество. На виртуальном хостинге оперативной памяти недостаточно для эффективной работы данных модулей.
  • mysql, mysqli, pdo_mysql — модули для работы с базой данных MySQL, обычно сайту требуется какой-либо один из них, отключите неиспользуемые.
  • imagick, gd — модули для работы с графикой, если сайт может работать с библиотекой gd, лучше использовать ее, так как она потребляет значительно меньше памяти.
  • imap — позволяет работать с почтовыми серверами по протоколу imap, большинству сайтов эта функция не требуется.
  • dba, sqlite, pgsql, pdo_sqlite, pdo_pgsql — модули для работы с соответствующими СУБД. Большинство сайтов работает с использованием СУБД MySQL, эти модули можно отключить.

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

2. Проанализируйте лог-файлы сайта


На хостинге в каталоге /var/log/ размещаются лог-файлы:

  • /var/log/ваш_домен.access.log – лог обращений к сайту,
  • /var/log/ваш_домен.error.log – лог ошибок.

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

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

3. Проверьте работу скриптов сайта со сторонними серверами


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

4. Проанализируйте работу скриптов сайта и запросы к базе данных MySQL


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

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

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

Оптимизация запросов к БД должна сводиться к следующим результатам:

  • во всех запросах используются для выборки данных индексы,
  • минимизировано использование временных файлов и операций filesort.

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

5. Проанализируйте верстку сайта


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

6. Проверьте сайт на наличие вредоносного кода


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

Проверьте хостинг на наличие вредоносного кода с помощью нашего антивируса.

Всё ещё остались вопросы?