Роман Агабеков - Ускорение интернет-магазинов на drupal

Post on 13-Apr-2017

452 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ускорение интернет-магазиновна Drupal

Роман Агабеков

Роман АгабековDevOps Engineer

О себе

● Директор ООО “Инитлаб” (drupal-coder.ru)● Веду блог drupal-admin.ru● Специализируюсь на администрировании Linux

серверов для Drupal проектов ● Опыт повышения производительности Drupal

сайтов● Опыт разработки Drupal сайтов и модулей● Есть свои Drupal проекты

Роман АгабековDevOps Engineer

Запросы от клиентовКлиенты жалуются:

1. Товар медленно кладётся в корзину2. Страницы медленно открываются

При этом с хостингом проблем нет:

1. Виртуальные / выделенные серверы2. Малая посещаемость (до 2 000 просмотров в сутки)

Роман АгабековDevOps Engineer

План оптимизации сайта1. Настройка программного обеспечения сервера2. Поиск и оптимизация медленных запросов к базе данных3. Профилировка и оптимизация медленных страниц

Роман АгабековDevOps Engineer

Настройка ПО на сервере1. Кэширование PHP (apc, xcache, opcache)2. Перенос кэша Drupal в memcached (модули memcache_storage,

memcache)3. Оптимизация настроек базы данных Mysql (можно использовать

mysqltuner)

Роман АгабековDevOps Engineer

Включение APC и Memcached

Роман АгабековDevOps Engineer

Поиск и оптимизация медленных запросов к БД

1. Включение логирования медленных запросов MySQL2. Поиск медленных запросов MySQL (grep, awk, удобно использовать

mysqldumpslow)3. Поиск источников медленных запросов (в подавляющем

большинстве это views)4. Оптимизация запросов (чаще всего меняется views), применение

патчей, изменение реализации функционала или добавление индексов в таблицы

Роман АгабековDevOps Engineer

Фрагмент slow log Mysql

Роман АгабековDevOps Engineer

Использование mysqldumpslow

Роман АгабековDevOps Engineer

Профилирование и оптимизация медленных страниц

1. Включение логирования времени генерации медленных страниц (nginx, apache)

2. Поиск медленных страниц по логам (awk, удобный инструмент goaccess)

3. Профилирование найденных страниц xdebug + kcachegrind / xhprof для поиска медленных участков кода

4. Устранение найденных проблем - применение патчей, изменение реализации функционала

Роман АгабековDevOps Engineer

Фрагмент лога Apache

Роман АгабековDevOps Engineer

Пример использования GoAccess

Роман АгабековDevOps Engineer

Пример kcachegrind + xdebug

Роман АгабековООО “Инитлаб”

Роман АгабековDevOps Engineer

r.agabekov@initlab.ru+7 961 524-44-94skype: r.agabekovhttp://drupal-admin.ruhttp://drupal-coder.ru

Золотой спонсор:

Спасибо!

При поддержке: Серебряный спонсор:

top related