В этой стать я расскажу вам, как уменьшить время загрузки страниц вашего сайта, для этого проведем ускорение apache с помощью mod_pagespeed и Memcached в Ubuntu 15.04. Время загрузки страницы это важный фактор в ранжировании страниц поисковыми системами. Вы можете протестировать время загрузки страницы с помощью сервиса Google PageSpeed Insights.
Pagespeed это модуль для Apache2, который оптимизирует и кеширует содержимое сайта, прежде чем оно будет передано браузеру. Mod_pagespeed использует по умолчанию файловое кеширование, в статье я расскажу как установить и настроить Mod_pagespeed,а также переключить кеш на Memcached.
Все операции я буду производить на готовом LAMP сервере под Ubuntu 15.04.
1. Установка mod_pagespeed
Для начала выясним, какую разрядность имеет операционная система сервера. Т.к. Google предоставляет .deb пакеты для 32 и 64-битных систем.
Для этого выполним следующую команду:
uname -a
В результате вы получите подобный вывод:
Здесь мы видим "x86_64", это означает, что у нас 64-битная система, иначе 32-битная.
Скачаем и установим mod_pagespeed:
Ubuntu 64 бита:
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 бита:
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, чтобы mod_pagespeed создал файлы конфигурации:
service apache2 restart
2. Установка Memcached
Memcached доступен в стандартных репозиториях Ubuntu и может быть установлен следующей командой:
apt-get -y install memcached
Проверим, запустился ли memcached:
netstat -tap | grep memcached
В результате увидим подобное:
root@server1:/tmp# netstat -tap | grep memcached
tcp 0 0 localhost:11211 *:* LISTEN 1687/memcached
Я выделил порт, на котором работает Memcached, а именно 11211, он нам понадобится при настройке mod_pagespeed.
Если вы хотите, чтобы memcached работал также с PHP приложениями, а не только mod_pagespeed, установите расширение для PHP:
apt-get install php5-memcached
3. Настройка mod_pagespeed для работы с Memcached.
Откроем файл конфигурации mod_pagespeed в редакторе:
nano /etc/apache2/mods-available/pagespeed.conf
И найдем строку "ModPagespeedMemcachedServers":
[….] # ModPagespeedMemcachedServers localhost:11211
[….]
Раскомментируем эту строку, удалив # в начале строки.
Сохраним файл и перезапустим вебсервер Apache:
service apache2 restart
Теперь mod_pagespeed использует Memcached для хранения кеша. Посмотреть статистику использования Memcached можно с помощью следующей команды:
echo stats | nc 127.0.0.1 11211
В результате получим следующий вывод:
root@server1:/tmp# echo stats | nc 127.0.0.1 11211
STAT pid 1687
STAT uptime 134
STAT time 1440931897
STAT version 1.4.14 (Ubuntu)
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.008000
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
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 6
STAT bytes_written 0
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 expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
Прервать вывод информации можно, нажав Ctrl-C.
Также, вы можете использовать phpMemcachedAdmin и ему подобные, для просмотра статистики Memcached сервера.
Теперь протестируем скорость открытия сайта с помощью PageSpeed Insights. Первая проверка может не показать изменений т.к. кеш еще не сформирован, а вот последующие проверки должны давать хороший результат.
На этом всё 🙂
После установки мода pagespeed увеличилось потребление памяти, скорость загрузки сайта на нагрузочном тестировании увеличилась на 0,2 секунды при 100 одновременных посещений. После удаления мода показатели стали ещё хуже. При этом до установки мода при 100 посетителях скорость загрузки страницы была 0,5 секунды, с модом 0,7, после удаления 0,75-0,8.
Тут все упирается в частоту процессора и оперативку т.к. апачик при большом количестве подключений начинает активно кушать и проц и память,а pagespeed хранит данные в memcached, который в свою очередь хранит данные в оперативке