Статья незаконченная, на праздниках буду проводить benchmark и постараюсь реализовать идею, которую здесь описал.
Итак, Вы установили друпал, настроили сайт и запустили.
Но некоторые страницы отдаются медленно или сервер не справляется с нагрузкой.
Что можно сделать в друпале, чтобы ускорить отдачу?
1. Рассматриваем установку с nginx + php_fpm, где Apache отсутствует.
2. Включаем кеширование блоков в друпал, кеширование страниц пока выключено.
3. Помещаем opcode в кеш, для этого используется APC. Drupal со всеми модулями занимает порядка 40 Мб в памяти.
4. Помещаем все таблицы cache* в память - здесь варианта 2 - CacheRouter или Memcache API. Каждый из этих модулей имеет свои преимущества - в CacheRouter реализовано много хранилищ - Вы можете использовать разные для разных таблиц, БД, APC, memcached, file. Однако, если говорить о высокой нагрузке, то хранилище будет memcached. Преимущество Memcache API заключается в том, что этот модуль умеет хранить в памяти кроме cache* таблиц еще и sessions - как показали наблюдения за сайтом, в эту таблицу много пишется, поэтому в кеше работа с ней будет быстрее и снизит нагрузку.
В принципе уже это позволит сайту работать быстро, и большинство устроит. Что же можно сделать еще? Вот какие есть варианты:
1. Использовать boost - этот модуль позволяет кешировать страницы для анонимных пользователей на диск.
Для кого предназначен: для анонимов
Как работает: при запросе анонимом страницы, если ее нет в кеше, она генерируется, помещается в кеш и следующий запрос будет обслужен из кеша.