Роман Агабеков - Ускорение интернет-магазинов на drupal
Post on 13-Apr-2017
452 Views
Preview:
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