Гид по технологиям

Ускорение загрузки страниц: mod_pagespeed + Memcached на Ubuntu 15.10

5 min read Веб‑оптимизация Обновлено 28 Nov 2025
mod_pagespeed + Memcached: ускорение сайта на Ubuntu
mod_pagespeed + Memcached: ускорение сайта на Ubuntu

Введение

Время загрузки страницы влияет на поведение пользователей и на ранжирование в поисковых системах. Google PageSpeed Insights и инструменты разработчика в браузерах помогают измерять текущее время загрузки. Модуль mod_pagespeed для Apache оптимизирует и кеширует содержимое сайта перед отправкой в браузер, что уменьшает нагрузку на сервер и увеличивает число страниц в секунду, которые сервер способен отдавать.

По умолчанию mod_pagespeed использует кеш на файловой системе. В этом руководстве мы заменим файловый кеш на Memcached — быстрый кеш в памяти — чтобы дополнительно снизить задержки при генерации страниц. Инструкции ориентированы на Ubuntu 15.10 (Wiley Werewolf), но в большинстве случаев применимы и к другим версиям Ubuntu и Debian-подобным системам.

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

Быстрый план действий

  1. Определить архитектуру системы (32/64 бит).
  2. Установить пакет mod_pagespeed от Google.
  3. Установить и запустить Memcached.
  4. Изменить конфигурацию mod_pagespeed, указав серверы Memcached.
  5. Перезапустить Apache и проверить работу.

Как определить 32- или 64-битную систему

Выполните команду:

uname -a

Если в выводе присутствует строка “x86_64”, система использует 64‑битное ядро — применяйте 64‑битный пакет mod_pagespeed. В противном случае используйте 32‑битный пакет.

Установка mod_pagespeed

Google предоставляет .deb-пакеты mod_pagespeed для 32‑ и 64‑битных Ubuntu.

Ubuntu 64 bit (рекомендуется для большинства серверов):

cd /tmp  
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb   
dpkg -i mod-pagespeed-stable_current_amd64.deb

Ubuntu 32 bit:

cd /tmp  
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb   
dpkg -i mod-pagespeed-stable_current_i386.deb

Затем перезапустите Apache, чтобы подхватить модуль и его конфигурацию:

service apache2 restart

Установка Memcached

Memcached доступен в репозитории Ubuntu и устанавливается через apt:

apt-get -y install memcached

Проверьте, запустился ли демон Memcached, выполнив:

netstat -tap | grep memcached

В выводе netstat будет отображён адрес и порт (обычно localhost:11211). Этот порт понадобится при настройке mod_pagespeed.

Если вы хотите использовать Memcached не только для mod_pagespeed, но и для PHP‑приложений, установите расширение PHP:

apt-get install php5-memcached

Важно: если на сервере ограничено доступное ОЗУ, оцените нагрузку и объём памяти, выделяемый Memcached, прежде чем увеличивать память для кеша.

Настройка mod_pagespeed для использования Memcached

Откройте файл конфигурации pagespeed в вашем любимом редакторе. Пример с nano:

nano /etc/apache2/mods-available/pagespeed.conf

Найдите строку, содержащую ModPagespeedMemcachedServers (может быть закомментирована):

[....]  
# ModPagespeedMemcachedServers localhost:11211  
[....]

Уберите символ # в начале строки, чтобы указать Memcached как бэкенд для хранения:

[....]  
ModPagespeedMemcachedServers localhost:11211  
[....]

Если на сервере достаточно памяти, можно дополнительно активировать общий метаданные‑кеш в памяти, убрав # перед строкой:

[....]  
ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200  
[....]

После правок перезапустите Apache:

service apache2 restart

Теперь mod_pagespeed будет использовать Memcached как хранилище кеша.

Проверка статуса Memcached и статистика

Получить статистику Memcached можно с помощью nc:

echo stats | nc 127.0.0.1 11211

Пример вывода (не изменяйте, это пример командной подсказки):

root@server1:/tmp# echo stats | nc 127.0.0.1 11211  
STAT pid 1636  
STAT uptime 254  
STAT time 1460561250  
STAT version 1.4.24 Ubuntu  
STAT libevent 2.0.21-stable  
STAT pointer_size 64  
STAT rusage_user 0.000000  
STAT rusage_system 0.020000  
STAT curr_connections 6  
STAT total_connections 8  
STAT connection_structures 7  
STAT reserved_fds 20  
STAT cmd_get 34  
STAT cmd_set 15  
STAT cmd_flush 0  
STAT cmd_touch 0  
STAT get_hits 14  
STAT get_misses 20  
STAT delete_misses 0  
STAT delete_hits 0  
STAT incr_misses 0  
STAT incr_hits 0  
STAT decr_misses 0  
STAT decr_hits 0  
STAT cas_misses 0  
STAT cas_hits 0  
STAT cas_badval 0  
STAT touch_hits 0  
STAT touch_misses 0  
STAT auth_cmds 0  
STAT auth_errors 0  
STAT bytes_read 8573  
STAT bytes_written 22539  
STAT limit_maxbytes 67108864  
STAT accepting_conns 1  
STAT listen_disabled_num 0  
STAT threads 4  
STAT conn_yields 0  
STAT hash_power_level 16  
STAT hash_bytes 524288  
STAT hash_is_expanding 0  
STAT malloc_fails 0  
STAT bytes 6856  
STAT curr_items 9  
STAT total_items 15  
STAT expired_unfetched 0  
STAT evicted_unfetched 0  
STAT evictions 0  
STAT reclaimed 0  
STAT crawler_reclaimed 0  
STAT crawler_items_checked 0  
STAT lrutail_reflocked 0  
END

Нажмите Ctrl+C, чтобы вернуться к приглашению командной строки.

После того как кешы заполнятся (возможно потребуется несколько перезагрузок страниц при малом трафике), повторно протестируйте сайт с помощью PageSpeed Insights или инструментов браузера.

Что делать, если ускорение не заметно (когда это не помогает)

  • Сайт уже отдаёт статические ресурсы через CDN — локальный Memcached может дать небольшое улучшение.
  • Медленная генерация динамического контента в коде приложения: кеширование на уровне приложения (например, кеширование SQL-запросов) важнее, чем кеширование выходного HTML.
  • Неправильная конфигурация mod_pagespeed или конфликт с другими модулями Apache может препятствовать применению оптимизаций.

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

Альтернативные подходы и совместимость

  • Varnish Cache — обратный прокси для HTTP с поддержкой высокопроизводительного кеширования; полезен для кеширования целых страниц.
  • Redis — альтернатива Memcached с возможностью персистентности и более богатыми структурами данных.
  • Файловый кеш (по умолчанию в mod_pagespeed) — прост в настройке, но медленнее по сравнению с кешем в памяти.

Совместимость: инструкции ориентированы на Ubuntu 15.10, но большинство шагов актуальны для более новых Ubuntu LTS и Debian‑производных. При обновлении дистрибутива проверьте доступность соответствующих пакетов и требования модулей.

Ментальная модель: уровни кеширования

  • Уровень 1 — CDN/edge: статические и широко раздаваемые ресурсы.
  • Уровень 2 — веб‑сервер (mod_pagespeed + Memcached): оптимизация и быстрый кеш на уровне сервера.
  • Уровень 3 — приложение: внутренняя логика, кеширование результатов дорогостоящих вычислений.

Правильная комбинация уровней даёт наибольший выигрыш в скорости и масштабируемости.

Чеклист для администратора (быстрый)

  • Определить архитектуру (uname -a).
  • Установить mod_pagespeed (dpkg -i соответствующий .deb).
  • Установить memcached (apt-get install memcached).
  • Включить ModPagespeedMemcachedServers в pagespeed.conf.
  • При необходимости включить ModPagespeedCreateSharedMemoryMetadataCache.
  • Перезапустить Apache и проверить работу (service apache2 restart).
  • Оценить результаты через PageSpeed Insights и логи.

Шпаргалка: основные команды

  • Узнать архитектуру:
uname -a
  • Установка mod_pagespeed (64‑bit example):
cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-stable_current_amd64.deb
  • Установка memcached и PHP‑расширения:
apt-get -y install memcached
apt-get install php5-memcached
  • Проверка Memcached:
netstat -tap | grep memcached
  • Статистика Memcached:
echo stats | nc 127.0.0.1 11211

Критерии приёмки

  • mod_pagespeed успешно установлен и активен в Apache.
  • Memcached запущен и доступен на порту (по умолчанию 11211).
  • В /etc/apache2/mods-available/pagespeed.conf указана строка ModPagespeedMemcachedServers localhost:11211.
  • Тесты PageSpeed Insights показывают улучшение показателей загрузки (или наблюдается уменьшение времени ответа сервера и нагрузки при нагрузочном тестировании).

Факто‑бокс: ключевые числа

  • Порт Memcached по умолчанию: 11211
  • Пример limit_maxbytes в выводе stats: 67108864 (примерное значение, байты)
  • Команды перезапуска Apache: service apache2 restart

Заключение

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

Примечание: если вы используете CDN, обратный прокси (например, Varnish) или специализированные решения в облаке, сравните подходы и выберите комбинацию, наиболее подходящую для вашей архитектуры.

Ссылки

  • Google pagespeed tools
  • memcached.org
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Установка macOS в VirtualBox на Windows
Виртуализация

Установка macOS в VirtualBox на Windows

Пакетная обработка изображений в GIMP
GIMP

Пакетная обработка изображений в GIMP

Служба Print Spooler не запущена — как исправить
Руководство

Служба Print Spooler не запущена — как исправить

Как сделать украшения на 3D‑принтере
3D-печать

Как сделать украшения на 3D‑принтере

ПК не уходит в сон во время стрима
Руководство

ПК не уходит в сон во время стрима

Сброс сети в Windows 10 Anniversary
Windows

Сброс сети в Windows 10 Anniversary