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

968 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
968
On SlideShare
0
From Embeds
0
Number of Embeds
113
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×