Як покращити ефективність свого сайту Drupal7? [зачинено]


10

Для когось, хто є новим для Drupal, я бачу, що в керуванні Drupal є багато ресурсів, але я не впевнений, який з них використовувати.


1
Ми можемо обговорити, чи хочемо ми канонічного питання щодо цього мета, але я все-таки думаю, що це занадто широко. А покращення продуктивності може бути дуже залежним від контексту і не проводиться у вакуумі.
mpdonadio

Відповіді:


26

Це ноти з мого досвіду і можуть відрізнятися від того, що відчувають інші. Я переважно використовую стек LAMP і вважаю те саме в своїх пропозиціях.

Великі правила кешування, яких я зазвичай дотримуюся.

  1. Обробити один раз кілька разів.
  2. Жити з несвіжими даними, коли це можливо
  3. Очищати кеші рідко і тримати їх дуже специфічно.
  4. Коли це можливо, виконайте зміни на найнижчому рівні в стеці. LAMP - DCCc: Linux, Apache, Mysql, PHP, Drupal Core, Contrib та спеціальний модуль.

Поліпшення продуктивності сайту Drupal (у зростаючому порядку складності)

  1. Постійно оновлюйте ядро, модуль допису та теми. Так це має значення.

  2. Встановіть APC на свій сервер. (Переміщено вгору на основі пропозиції від Летаріона)

  3. Кешування сторінок: адміністратор / конфігурація / розробка / продуктивність Різниця між мінімальним терміном використання кешу та закінченням терміну кешованих сторінок

  4. Блок кешування https://drupal.org/project/blockcache_alter Параметри кешування для всіх блоків.
  5. Сукупність файлів javascript та css - поліпшення Front End https://www.drupal.org/project/advagg
  6. Вимкнути непотрібні модулі. Кожен модуль додає до кількості коду, який повинен бути доступний для завантаження сторінки. І це також збільшує кількість пошукових запитів. Можливо, використовувати загальний модуль замість декількох модулів, які виконують конкретні функції.
  7. Вміст Cache Views - кешування вмісту для Views https://www.drupal.org/project/views_content_cache
  8. Вимкнути журнал БД - використовуйте https://drupal.org/project/syslog_ng
  9. Зменшити 404 помилки - http://www.brokenlinkcheck.com/
  10. Швидкі відповіді 404 - https://drupal.org/project/fast_404 - Спробуйте працювати на рівні сервера.
  11. Валідації на стороні клієнта - https://www.drupal.org/project/clientside_validation
  12. Стиснути зображення - https://www.drupal.org/project/imageapi_optimize
  13. Ледаче завантаження зображень - не завантажуйте зайві зображення - https://www.drupal.org/project/lazyloader
  14. Використовуйте спрайт-листи - https://www.drupal.org/project/spritesheets

  15. Встановіть мінімальне значення часу кешу на більшу кількість та використовуйте модулі очищення кешу для очищення кешів для певних сторінок - Щоразу, коли я редагую / оновлюю вузол, всі кеші сторінок для анонімного користувача втрачаються

  16. Використовуйте модуль Devel для перегляду запитів.
  17. Перезаписуйте запити переглядів / уникайте переглядів, якщо це зайвий вміст.
  18. XHProf - https://www.drupal.org/project/XHProf
  19. FPM, HHVM.
  20. Профілювання та налаштування БД - https://www.drupal.org/project/dbtuner
  21. Використовуйте Boost , не завантажуйте БД, якщо не потрібно. https://drupal.org/project/boost Для більшості малих та середніх сайтів Boost є досить хорошим, і вам можуть не знадобитися зворотні проксі або більше.
  22. Використовуйте CDN - https://www.drupal.org/project/cdn Його легко налаштувати.
  23. Якщо ваші таблиці кешу користуються величезною пам’яттю Memcached - Якщо ви можете встановити memcached і встановити оперативну пам’ять для нього, він не такий складний, як здається.
  24. Etags - правильно налаштувати Etags. https://developer.yahoo.com/blogs/ydnfiveblog/high-performance-sites-rule-13-configure-etags-7211.html
  25. Використовувати зворотний проксі-сервер - лак (принаймні для активів). Допомагає багато, якщо більшість ваших користувачів анонімні.
  26. Стиснута передача - увімкнення стиснення gzip
  27. Тримайте живу - використовуйте стійкі з'єднання, де це можливо.
  28. Прогресивні JPEGS -
  29. ПІДГОТОВКА В КОДІ - Блог Eaton є приголомшливим. http://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7
  30. Реалізувати зігрівання кешу - https://www.drupal.org/project/cache_warmer - Кеш Прогрійте сторінки, перш ніж кінцевий користувач потрапить на них.
  31. Налаштування DB Master Slave - https://www.drupal.org/project/autoslave полегшує вам його налаштування.
  32. Кластери бази даних - /programming/1163216/database-cluster-and-load-balancing
  33. Балансири завантаження - http://en.wikipedia.org/wiki/Load_balancing_(computing)
  34. Використовуйте евристичне зігрівання кешу - https://www.drupal.org/project/cache_graceful
  35. Аутентифікований кешування користувачів - https://www.drupal.org/project/authcache

2
Відмінна відповідь, але одна річ, яка мені сильно виділяється, - це те, що у вас немає APC вгорі. APC тривіально легко встати на місце, немає нижньої сторони, і прибуток може бути справді великим. Я думаю, що це повинно йти на вершину. (Можливо, з коментарем, що це не потрібно після PHP 5.5, оскільки оптимізація нарешті інтегрується)
Летаріон

1
Може також згадати щось про найпростіші вигоди від кешування? Якщо ваш сайт вимагає здебільшого статичного вмісту (сторінки однакові для всіх користувачів, тому немає входу), тоді Varnish або Boost забезпечує найбільший прибуток.
Домінік Вудман

5

Важливий рівень бази даних. Я висвітлюю деякі його частини та основи в цій презентації http://goo.gl/30yi39


Дивовижна презентація MikeyTown. Ви виступаєте про :)
Gokul NK

3

Як супутник відповіді Гокуля, ось як я подумав про те, що ви хочете кешувати в Drupal (не впорядкований за складністю):

Тренування означає прискорення повторних занять.

Основними повторними діями, пов’язаними з веб-сайтом Drupal, є:

  • Виклик веб-сторінки
  • Запуск PHP-коду для створення веб-сторінки
  • PHP викликає елементи з бази даних

Кешування всієї веб-сторінки

Найбільші вигоди від кешування повинні бути від пошуку способу кешування всієї веб-сторінки, не запускаючи PHP-код або викликаючи базу даних.

Це можна зробити за допомогою лаку або підсилення . Коли користувач дзвонить на сторінку, він повертає копію сторінки, не робивши жодного розрахунку.

Однак це не спрацює, якщо частини сторінки мають бути різними (тобто користувачі входять, а їхнє ім’я з’являється вгорі).

Для того, щоб змусити це працювати, вам потрібно заглянути в Authcache.

PHP кешування

Ви можете кешувати PHP за допомогою APC , або якщо у вас версія 5.5 або новіша, то вбудований інший кеш.

Це зроблено на стороні сервера і означає, що шматки вашого PHP-коду будуть запам’ятовуватися. Ви кешуєте PHP для Drupal, але технічно не взаємодієте з Drupal.

Кешування бази даних

Дзвінки захопити інформацію з бази даних коштують дорого.

Найпоширенішим механізмом кешування бази даних є пам'ять .

Це кешує об’єкти бази даних в оперативній пам'яті, тому замість того, щоб робити виклик об'єкту бази даних на жорсткому диску, ви просто витягнете його з оперативної пам'яті, що набагато швидше.


1
Redis - це також чудовий сховище кеш-пам'яті, принаймні порівнянне з memcache за моїм досвідом (хоча memcache, ймовірно, виграє з кластеризацією)
Clive
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.