17
Drupal Optimization

DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Embed Size (px)

Citation preview

Page 1: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Drupal

Optimization

Page 2: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Що оптимізовувати?

1. Запити до бази даних;

2. Завантаження CSS та Javascript;

3. Зображення;

4. Непотрібні модулі.

Page 3: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 0 - Штатні інструменти

оптимізації DrupalСторінка

Administration»Configuration»Development»Performance

- кешування для анонімів;

- кешування блоків;

- агрегація CSS;

- агрегація JavaScript.

Page 4: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Кешування блоків

● DRUPAL_CACHE_PER_ROLE;

● DRUPAL_CACHE_PER_USER;

● DRUPAL_CACHE_PER_PAGE;

● DRUPAL_CACHE_GLOBAL;

● DRUPAL_CACHE_CUSTOM;

● DRUPAL_NO_CACHE;

Page 5: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 1 - вимикаємо

вбудовані інструменти1. Вимикаємо - update manager;

2. Вимикаємо модуль devel;

3. Вимикаємо overlay;

4. Вимикаємо тулбар та встановлюємо administration menu;

Примітка: Вимикаємо і видаляємо всі модулі які не

використовуються на сайті.

Page 6: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 2 - статичні сторінкиBoost - модуль дозволяє кешувати сторінки для анонімних

користувачів.

Модуль дозволяє пізніше серверу віддавати закешовані сторінки в

декілька разів швидше, оскільки запитів до бази даних не

відбувається.

Page 7: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 3 - редагуємо .htaccess

файл# Use mod_deflate to gzip components

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/css application/x-javascript

application/javascript text/plain text/html text/xml

application/xml

</IfModule>

# Disable ETags

FileETag None

Page 8: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 4 - підключаємо CDN

Page 9: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 5 - Alternative PHP Cache

Розширення PHP APC робить дві корисні речі:

- кешує скомпільовані файли php, при повторному зверненні їх

не доведеться заново читати з диска і компілювати,

- кешує змінні, поміщені в пам'ять APC програмістом між

завантаженнями сторінок, знижуючи навантаження на mysql. В

Drupal-і для цього замінюється стандартний кеш.

Page 10: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 6 - Varnish

Page 11: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 7 - mod_pagespeedМодуль представляє з себе набір фільтрів, кожний з них і

приклади використання представлені і описані в

документації. Застосовувати і використовувати модулі слід

виходячи з потреб свого проекту, у кожного фільтра є свої

особливості, які слід врахувати при використанні, звертаючи

увагу на розділ «Risks» в їх документації.

Page 12: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 8 - XHprofПрофілювання - це процес аналізу роботи додатку для збору інформації

про продуктивність (збір набору характеристик - час, використання

оперативної пам'яті і ресурсів процесора, кількість викликів функцій і

так далі). Відповідно інструмент, який використовується для цього,

називається профайлером. Профайлери в більшості випадків

використовують щоб знайти хот-спот в додатку ("гаряче місце", тобто

ділянка коду, час виконання якого невиправдано великий).

Page 13: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 9 - SPDY SPDY (читається як «speedy», «спіді») — протокол прикладного

рівня для передачі веб-вмісту, розроблений корпорацією Google.

Основним завданням SPDY є зниження часу завантаження веб-

сторінок та їх елементів. Це досягається за рахунок розстановки

пріоритетів і мультиплексування передачі декількох файлів таким

чином, щоб було потрібно тільки одне з'єднання для кожного

клієнта.

Page 14: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Крок 10 - Watchdog

Журнал системних подій

Page 15: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Перевірка результатів

оптимізації

Page 16: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Сервіси для тестування

швидкодії сайтів

- loadimpact.com

- PageSpeed

- YSlow

- Pingdoom

- Gtmetrix

Page 17: DrupalTour. Zhytomyr — Drupal Optimization (Dmitry Kinakh, InternetDevels)

Дякую за увагу