К началу страницы
лучший хостинг тот, который о себе не напоминает

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

Содержание

  1. Общая информация
  2. Способы снижения потребления памяти
    2.1. Отключите неиспользуемые модули веб-сервера Apache и расширения модуля PHP
    2.2. Проанализируйте лог-файлы сайта
    2.3. Проверьте работу скриптов сайта со сторонними серверами
    2.4. Проанализируйте работу скриптов сайта и запросы к базе данных MySQL
    2.5. Проанализируйте верстку сайта

1. Общая информация

Основной ресурс на хостинге RU-CENTER, который влияет на работу сайтов — это память, выделенная для работы процессов на виртуальном веб-сервере. Размер выделенной памяти устанавливается в соответствии с тарифным планом.

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

Ознакомиться с графиком потребления памяти на услуге хостинга вы можете в разделе «Веб-сервер» → «Использование ресурсов» панели управления хостингом http://hosting.nic.ru. График обновляется каждые 5 минут.

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

2. Способы снижения потребления памяти

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

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

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

Примеры настройки хостинга RU-CENTER под некоторые популярные CMS опубликованы в разделе http://hosting.nic.ru/cms/.

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

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

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

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

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

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

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

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

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

  • /var/log/ваш_домен.access.log – лог обращений к сайту,
  • /var/log/ваш_домен.error.log – лог ошибок.
Просмотреть их можно при подключении к хостингу по SSH. Скачать лог-файлы вы можете с помощью файлового менеджера панели управления.

Проверьте, пожалуйста, какие обращения были к сайту в моменты высокого потребления памяти.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проект компании RU-CENTER
Служба круглосуточной технической поддержки:
+7 (495) 994-46-01
+7 (495) 737-06-01 (Москва)
8 800 250-27-99
8 800 555-46-01 (для регионов России)
e-mail: support@nic.ru
Заведите собственную почту от RU-CENTER


© Региональный Сетевой Информационный Центр, 2006-2017