Неоптимизированный сайт Drupal 7 с 2 ГБ ОЗУ может удовлетворительно обслуживать около 20-25 запросов в секунду. Если вы хотите выйти за рамки этого, сайт потребует некоторых настроек. То, что вы настраиваете, зависит от того, являются ли большинство пользователей сайта анонимными или аутентифицированными. Вот главные вещи, которые вы можете сделать для улучшения производительности:
Сайт обслуживает в основном анонимных пользователей:
1) Определенно установите и настройте APC, memcache и entitycache.
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 запросов в секунду.
Сайт обслуживает в основном аутентифицированных пользователей:
Оптимизация такого сайта более сложна. Такие сайты попадают в одну из двух подкатегорий для целей оптимизации:
(а) Большинство страниц на сайте идентичны, за исключением 1 или 2 блоков, которые содержат информацию, специфичную для пользователя. Например, для сайта Drupal Commerce.
(б) Большинство страниц полностью настроены для пользователя. Например, на сайте Drupal Commons.
Если ваш сайт попадает в категорию (а), тогда примените большинство методов, которые мы обсуждали, для сайта, обслуживающего в основном анонимных пользователей. Единственное отличие состоит в том, что для страниц без прав администратора Varnish необходимо будет удалить файл cookie SESSION из заголовка и обслуживать кэшированные страницы. Используйте модуль AJAX Block для сервера блоков с пользовательской информацией, используя AJAX. Таким образом, большая часть страницы будет обрабатываться очень быстро с использованием Varnish, а затем пользовательская информация будет передаваться через AJAX.
Если ваш сайт попадает в категорию (б), то используйте модуль Authcache. Я предпочитаю не использовать его в максимально возможной степени, потому что это требует немного настройки и обслуживания. Но это работает очень хорошо. Это будет не так быстро, как при использовании Varnish, но он сможет обрабатывать 50 запросов в секунду, которые вы ищете.
Если вы хотите выйти за рамки того, что мы обсудили здесь, взгляните на контрольный список оптимизации производительности Drupal . Раскрытие: написано мной. В нем приведен исчерпывающий список того, что вы можете сделать, чтобы ваш сайт на Drupal быстро работал.