![Page 1: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/1.jpg)
Drupal Perfomance issues, tips & tricks
Антон Иванов
http://donetsk.drupal.ua
![Page 2: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/2.jpg)
Drupal Perfomance issues, tips & tricks
![Page 3: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/3.jpg)
Раздел 1
Полезные мелочи о которых не стоит
забывать
![Page 4: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/4.jpg)
Оптимизация доступная«Из коробки»
Оптимизация CSS файлов Оптимизация Java Script файлов Кеширование страниц Кеширование блоков
![Page 5: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/5.jpg)
Настраиваем автоматический запуск Cron
Периодические действия модулей Очистка таблиц Логов и Сессий Poormanscron
![Page 6: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/6.jpg)
Оптимизация которую мы делаем сами
Включены только используемые модули Наблюдаем за размерами таблиц Логов Пишем оптимальный код Кешируем кастомный код
![Page 7: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/7.jpg)
Оптимизация использования модуля Locale
Нативный язык Drupal – английский Перевод одной строки = 1 запрос в БД $conf['locale_custom_strings_ru'] = array(
'оригинальная строка' => 'перевод', …);
![Page 8: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/8.jpg)
Используем Pressflow
http://pressflow.org/ Репликация БД ”Внешнее” кеширование страниц Ускорено определение алиасов путей Интегрировано тестирование SimpleTest Сессии для анонимов не создаются
![Page 9: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/9.jpg)
Раздел 2
Оптимизация производительности на Shared Hosting
![Page 10: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/10.jpg)
Учитываем требования к хостингу со стороны 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. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/11.jpg)
Модуль Сacherouter
http://drupal.org/project/cacherouter Хранение кеша не в БД Файловый Кеш Кеширование частей сайта Прост в настройке Прирост производительности 7-15%
![Page 12: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/12.jpg)
Модуль Boost
http://drupal.org/project/boost Для анонимусов Сложен в настройке Кеширует страницу целиком Не для многостраничных сайтов 10 000+ Прирост производительности 2-3 порядка
![Page 13: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/13.jpg)
Раздел 3
Оптимизация высоконагруженных
сайтов
![Page 14: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/14.jpg)
Ускорение работы PHP
Кеширование опкода APC XCache eAccelerator (в среднем на 45%)
![Page 15: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/15.jpg)
Использование таблиц InnoDB вместо MyISAM
35-40% запросов - INSERT или UPDATE MyISAM – блокировка на уровне таблицы InnoDB – блокировка на уровне строки search_* и menu_router – только MyISAM Слабо нагруженые сайты прирост 3-5% Высоко нагруженые – в среднем 30%
![Page 16: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/16.jpg)
Репликация Базы Данных
Master + 1 и более Read реплик Перевести таблицы на InnoDB Друпал + Патч или Pressflow Pressflow + mysqlautorwsplit.patch Снижение нагрузки на БД на 45% Прирост производительности 25%
![Page 17: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/17.jpg)
Модуль Memcache
Memcache или Memcached вместо БД Hit ~80%, Miss ~20% Прост в настройке Прирост производительности 100-400%
![Page 18: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/18.jpg)
Использование Nginx
Отдача статики через Nginx Уменьшение запросов к Apache Решает проблему ”Медленного канала” Кеширование HTML Нет модуля Drupal для очистки кеша Nginx
![Page 19: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/19.jpg)
Использование Varnish
Реверсивный HTTP прокси Только с Pressflow http://drupal.org/project/varnish Проблемы с формами Огромный прирост
производительности
![Page 20: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/20.jpg)
Раздел 4
Резюме
![Page 21: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/21.jpg)
Общие советы
Включаем оптимизацию CSS и JS файлов Кеширование блоков и страниц Автозапуск Cron Пишем оптимальный код и кешируем его
(если нужно) Locale (избавляемся от запросов к БД) Pressflow Правильно выбираем Хостинг CacheRouter или Boost
![Page 22: Drupal Perfomance issues, tips & tricks. Антон Иванов](https://reader036.vdocuments.pub/reader036/viewer/2022062418/554bceecb4c905706a8b4a92/html5/thumbnails/22.jpg)
Для высоконагруженных сайтов
Кеширования опкода PHP (APC, XCache или eAccelerator)
Таблицы БД InnoDB вместо MyISAM Репликация БД Memcache Nginx или Varnish