Неоптимізований сайт Drupal 7 з 2 ГБ оперативної пам’яті може задовільно обслуговувати близько 20-25 запитів в секунду. Якщо ви хочете вийти за рамки цього, сайт потребує певного налаштування. Те, що ви налаштуєте, залежить від того, чи більшість користувачів на сайті є анонімними або автентифікованими. Ось основні речі, які ви можете зробити для покращення продуктивності:
Сайт обслуговує переважно анонімних користувачів:
1) Визначально встановіть та налаштуйте APC, memcache та entcache.
2) Помістіть проксі-сервер Varnish перед веб-сервером. Установка та налаштування потребує приблизно 30 хвилин, але значно скоротить час завантаження сторінки. Фактично, Varnish може обробляти близько 300 запитів в секунду на машині 2 Гб, якщо всі сторінки кешовані. Використовуйте модуль Expire для закінчення терміну дії лише вибраних сторінок при оновленні / видаленні вмісту.
3) Використовуйте розширений модуль агрегації CSS / JS для агрегації файлів CSS та JS. Спробуйте перемістити всі файли JS внизу сторінки. Але зауважте, що це може порушити ваш сайт, тому застосуйте це на виробництві після ретельного тестування. Також експериментуйте з вбудованим критичним CSS. На мій досвід, це скоротить час завантаження сторінки приблизно на півсекунди.
4) CSS / JS / зображення повинні мати далеко не майбутній термін дії. Це забезпечить, що браузери не будуть запитувати однакові CSS / JS / зображення знову і знову.
5) Переконайтеся, що веб-сервер обслуговує стислі сторінки / CSS / JS.
Після виконання вищезазначених 5 кроків ваш 2 Гб оперативної пам’яті повинен бути в змозі досить легко серверувати 50 запитів на секунду.
Сайт обслуговує переважно аутентифікованих користувачів:
Оптимізація такого сайту є складнішою. Такі сайти для оптимізації належать до однієї з двох підкатегорій:
(a) Більшість сторінок на сайті ідентичні, за винятком 1 або 2-х блоків, які містять інформацію, орієнтовану на користувача. Наприклад, наприклад, Drupal Commerce.
(b) Більшість сторінок повністю налаштовані для користувача. Наприклад, наприклад, Drupal Commons.
Якщо ваш сайт підпадає під категорію (а), то застосуйте більшість методів, які ми обговорювали для сайту, який обслуговує переважно анонімних користувачів. Єдина відмінність полягає в тому, що для сторінок, які не є адміністраторами, Varnish повинен буде видалити файл cookie SESSION із заголовка та подати кешовані сторінки. Використовуйте модуль AJAX Block для серверних блоків із специфічною для користувача інформацією за допомогою AJAX. Таким чином велика частина сторінки буде надрукована надзвичайно швидко за допомогою Varnish, а потім інформація, що стосується користувача, буде надана через AJAX.
Якщо ваш сайт підпадає під категорію (b), використовуйте модуль Authcache. Я вважаю за краще не використовувати його якомога більше, оскільки це вимагає зовсім небагато конфігурації та обслуговування. Але це працює дуже добре. Це буде не так швидко, як використання Varnish, але він зможе обробляти 50 запитів в секунду, які ви шукаєте.
Якщо ви хочете вийти за межі того, що ми обговорювали тут, ознайомтесь із контрольним списком оптимізації продуктивності Drupal . Розкриття: Це написано мною. Він наводить вичерпний перелік речей, які ви можете зробити, щоб ваш сайт Drupal швидко палав.