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

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

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

Page 1: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

Page 2: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

О себе

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

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

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

Page 3: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

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

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

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

Page 4: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

Page 5: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

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

mysqltuner)

Page 6: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

Page 7: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

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

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

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

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

Page 8: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

Фрагмент slow log Mysql

Page 9: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

Page 10: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

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

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

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

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

Page 11: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

Page 12: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

Page 13: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

Пример kcachegrind + xdebug

Page 14: Роман Агабеков - Ускорение интернет-магазинов на Drupal

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

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

[email protected]+7 961 524-44-94skype: r.agabekovhttp://drupal-admin.ruhttp://drupal-coder.ru

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

Спасибо!

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