Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk — Chrome World по-русски

Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk

Memcached – кэширует данные и объекты непосредственно в память (RAM) и сокращает количество раз, которое необходимо прочитать из внешнего источника (например, из базы данных или вызовов API). Это особенно помогает динамическим системам, таким как WordPress или Joomla! за счет заметного сокращения времени обработки!

Установка Memcached

На моем сервере я запускаю Plesk Onyx с CentOS 7.x. Это руководство также применимо к другим системам, просто не забудьте использовать системные команды (например, apt-get вместо yum). Чтобы установить Memcached, сначала войдите на свой сервер через SSH и используйте командную строку:

yum install memcached

После процесса установки мы запускаем его:

service memcached start

Затем нам нужно установить PECL Memcached для соответствующей версии PHP. WordPress полностью совместим с PHP 7, поэтому давайте активируем Memcached для последней версии PHP 7.1. Начните с установки всех необходимых пакетов, чтобы добавить наш собственный модуль PHP в Plesk.

yum install make plesk-php71-devel gcc glibc-devel libmemcached-devel zlib-devel

Соберите модуль, следуя этим инструкциям. Вам не нужно указывать каталог libmemcached вручную, просто нажмите Enter, если будет предложено.

/opt/plesk/php/7.1/bin/pecl install memcached

На следующем шаге мы должны добавить строку в соответствующий файл конфигурации для регистрации модуля в PHP. Вы можете использовать командную строку, не открывая ini-файл в редакторе.

echo "extension = memcached.so"> /opt/plesk/php/7.1/etc/php.d/memcached.ini

И, наконец, перечитайте обработчики PHP, чтобы вы увидели модуль в обзоре PHP в графическом интерфейсе Plesk. ,

plesk bin php_handler –reread

Теперь вы можете проверить страницу phpinfo(), чтобы узнать, правильно ли загружен модуль memcached. Memcached – вывод phpinfo() Или напрямую через командную строку:

Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk

Проверка командной строки PHP:

/opt/plesk/php/7.1/bin/php -i | grep "memcached support" Memcached

Активировация Memcached в WordPress

Активировать Memcached в WordPress. После того, как Memcached установлен на сервере, его легко активировать в WordPress. Во-первых, нам нужно активировать бэкэнд Memcached с помощью специального скрипта, который автоматически определяет, использовать ли Memcached в качестве механизма кэширования. Загрузите скрипт с https://github.com/bonny/memcachy и переместите все файлы в папку / wp-content /. Если вы не меняли порт по умолчанию (11211) Memcached, то можете использовать его напрямую. Если вы его изменили, вам нужно будет добавить следующий код в файл wp-config.php (помещенный в корень вашего экземпляра WordPress).

Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk

$memcached_servers = array( array( '127.0.0.1', 11211 ) );

Хорошо, как только бэкэнд будет активирован, мы установим плагин кеширования для хранения и обслуживания обработанных страниц через Memcached. Установите плагин Batcache (https://wordpress.org/plugins/batcache/ ), используя инструкцию по установке.

  1. Загрузите и разархивируйте пакет
  2. Загрузите файлы advanced-cache.php в папку / wp-content /
  3. Откройте wp-config.php и добавьте следующую строку
    1. define('WP_CACHE', true);
    2. Важно: перед добавлением этой строки убедитесь, что Memcached правильно включен для выбранной версии PHP, иначе будет выдана ошибка!
  4. Загрузите файл batcache.php в папку 
    / wp-content / plugins /

Вот и все! Вы можете открыть файл advanced-cache.php и изменить настройки в соответствии с вашими потребностями. Файл batcache.php – это небольшой плагин, который восстанавливает кеш для сообщений и страниц. Не забудьте активировать плагин в бэкенде на странице плагина!

Убедитесь, что Memcached правильно работает в WordPress.

Теперь давайте проверим, что вы все сделали правильно. Самый простой способ узнать, была ли обработанная страница отправлена ​​из кеша, – это добавить к ответу дополнительное поле заголовка.

Для этого вам нужно изменить файл advanced-cache.php. Откройте файл и найдите

var $headers = array();

Измените эту строку на

var $headers = array('memcached' => 'activated');

Откройте Инструменты разработчика в своем браузере, выберите вкладку «Сеть» и несколько раз перезагрузите сайт (чтобы убедиться, что страница загружена из кеша) и проверьте заголовки ответов. 

Стресс-тесты с Blitz.io

Если вы видите поле заголовка memcached, значит все в порядке! Memcached – Проверка заголовков ответов Давайте проведем стресс-тесты с Blitz.io! Мы можем протестировать нагрузочную производительность с помощью стресс-тестирования, которое будет загружать веб-сайт множеством одновременных пользователей в секунду в течение определенного периода времени. Без какой-либо безопасности и защиты от перегрузки ваш сервер должен начать отвечать медленнее, пока запросы больше не будут обрабатываться. Если Memcached активирован, ваш сервер сможет дольше обслуживать интенсивные запросы, не вызывая ошибок. Давайте проведем несколько тестов нагрузки и производительности с Blitz.io.

Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk

Примечание. Для этого стресс-теста я взял тот же небольшой сервер, который использовал для тестов с Varnish (только 1 ЦП и 500 МБ памяти)!

Это тот же результат, что и в стресс-тесте Varnish. Как видите, мне пришлось прервать стресс-тест, потому что сервер не мог обрабатывать запросы менее 5 секунд и менее 50 одновременных пользователей в тесте. Всего через 15 секунд сервер полностью рухнул, и никакие запросы больше не могли обрабатываться! Результат С Memcached: стресс-тест – WordPress с Memcached Как видите, кеш Memcached

Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk

Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached | Форум Plesk

Позволяет нам поддерживать стабильность сервера даже при большой нагрузке. Небольшой тестовый сервер обслуживал более 400 одновременных пользователей и отвечал на все запросы в течение 50 секунд без каких-либо ошибок. Через 50 секунд и почти 450 одновременных пользователей сервер наконец перегрузился и перестал принимать дальнейшие запросы. С более мощным сервером цифры были бы намного выше.

Таким образом, это отличная идея – использовать Memcached, чтобы ваш сайт оставался активным, даже если он подвергается простой атаке. Для реальных DDoS-атак (распределенная атака отказа в обслуживании) вам будет лучше с CloudFlare ServerShield для защиты вашего сервера.

Резюме: WordPress с Memcached отлично работает

Memcached может значительно улучшить производительность вашего веб-сайта WordPress и снизить нагрузку на процессор вашего сервера. Настроить рабочую среду легко, и она работает «из коробки».

Спасибо, что прочитали мою статью, дайте знать свои комментарии!

Полезные ссылки:

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

Пост Как уменьшить нагрузку на сервер и повысить скорость WordPress с помощью Memcached впервые появился в Plesk.

Продолжить чтение…