drupal perfomance issues, tips & tricks. Антон Иванов

22
Drupal Perfomance issues, tips & tricks Антон Иванов http://donetsk.drupal.ua

Upload: drupalcampdn

Post on 08-May-2015

827 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Drupal Perfomance issues, tips & tricks. Антон Иванов

Drupal Perfomance issues, tips & tricks

Антон Иванов

http://donetsk.drupal.ua

Page 2: Drupal Perfomance issues, tips & tricks. Антон Иванов

Drupal Perfomance issues, tips & tricks

Page 3: Drupal Perfomance issues, tips & tricks. Антон Иванов

Раздел 1

Полезные мелочи о которых не стоит

забывать

Page 4: Drupal Perfomance issues, tips & tricks. Антон Иванов

Оптимизация доступная«Из коробки»

Оптимизация CSS файлов Оптимизация Java Script файлов Кеширование страниц Кеширование блоков

Page 5: Drupal Perfomance issues, tips & tricks. Антон Иванов

Настраиваем автоматический запуск Cron

Периодические действия модулей Очистка таблиц Логов и Сессий Poormanscron

Page 6: Drupal Perfomance issues, tips & tricks. Антон Иванов

Оптимизация которую мы делаем сами

Включены только используемые модули Наблюдаем за размерами таблиц Логов Пишем оптимальный код Кешируем кастомный код

Page 7: Drupal Perfomance issues, tips & tricks. Антон Иванов

Оптимизация использования модуля Locale

Нативный язык Drupal – английский Перевод одной строки = 1 запрос в БД $conf['locale_custom_strings_ru'] = array(

'оригинальная строка' => 'перевод', …);

Page 8: Drupal Perfomance issues, tips & tricks. Антон Иванов

Используем Pressflow

http://pressflow.org/ Репликация БД ”Внешнее” кеширование страниц Ускорено определение алиасов путей Интегрировано тестирование SimpleTest Сессии для анонимов не создаются

Page 9: Drupal Perfomance issues, tips & tricks. Антон Иванов

Раздел 2

Оптимизация производительности на Shared Hosting

Page 10: Drupal Perfomance issues, tips & tricks. Антон Иванов

Учитываем требования к хостингу со стороны Drupal

http://drupal.org/requirements Web server: Apache 1.3, 2.x, IIS 5, 6, 7 Database: >= MySQL 4.1, >= PostgreSQL 7.1 PHP: >= 5.2, memory_limit >= 32MB Disk space: >= 40 MB

Page 11: Drupal Perfomance issues, tips & tricks. Антон Иванов

Модуль Сacherouter

http://drupal.org/project/cacherouter Хранение кеша не в БД Файловый Кеш Кеширование частей сайта Прост в настройке Прирост производительности 7-15%

Page 12: Drupal Perfomance issues, tips & tricks. Антон Иванов

Модуль Boost

http://drupal.org/project/boost Для анонимусов Сложен в настройке Кеширует страницу целиком Не для многостраничных сайтов 10 000+ Прирост производительности 2-3 порядка

Page 13: Drupal Perfomance issues, tips & tricks. Антон Иванов

Раздел 3

Оптимизация высоконагруженных

сайтов

Page 14: Drupal Perfomance issues, tips & tricks. Антон Иванов

Ускорение работы PHP

Кеширование опкода APC XCache eAccelerator (в среднем на 45%)

Page 15: Drupal Perfomance issues, tips & tricks. Антон Иванов

Использование таблиц InnoDB вместо MyISAM

35-40% запросов - INSERT или UPDATE MyISAM – блокировка на уровне таблицы InnoDB – блокировка на уровне строки search_* и menu_router – только MyISAM Слабо нагруженые сайты прирост 3-5% Высоко нагруженые – в среднем 30%

Page 16: Drupal Perfomance issues, tips & tricks. Антон Иванов

Репликация Базы Данных

Master + 1 и более Read реплик Перевести таблицы на InnoDB Друпал + Патч или Pressflow Pressflow + mysqlautorwsplit.patch Снижение нагрузки на БД на 45% Прирост производительности 25%

Page 17: Drupal Perfomance issues, tips & tricks. Антон Иванов

Модуль Memcache

Memcache или Memcached вместо БД Hit ~80%, Miss ~20% Прост в настройке Прирост производительности 100-400%

Page 18: Drupal Perfomance issues, tips & tricks. Антон Иванов

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

Отдача статики через Nginx Уменьшение запросов к Apache Решает проблему ”Медленного канала” Кеширование HTML Нет модуля Drupal для очистки кеша Nginx

Page 19: Drupal Perfomance issues, tips & tricks. Антон Иванов

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

Реверсивный HTTP прокси Только с Pressflow http://drupal.org/project/varnish Проблемы с формами Огромный прирост

производительности

Page 20: Drupal Perfomance issues, tips & tricks. Антон Иванов

Раздел 4

Резюме

Page 21: Drupal Perfomance issues, tips & tricks. Антон Иванов

Общие советы

Включаем оптимизацию CSS и JS файлов Кеширование блоков и страниц Автозапуск Cron Пишем оптимальный код и кешируем его

(если нужно) Locale (избавляемся от запросов к БД) Pressflow Правильно выбираем Хостинг CacheRouter или Boost

Page 22: Drupal Perfomance issues, tips & tricks. Антон Иванов

Для высоконагруженных сайтов

Кеширования опкода PHP (APC, XCache или eAccelerator)

Таблицы БД InnoDB вместо MyISAM Репликация БД Memcache Nginx или Varnish