Ответ Маркдорисона - в основном принятый метод решения этой проблемы. Я возьму это немного дальше.
Когда у вас есть Pressflow для D6 или Drupal для D7, Memcached и Varnish, все прекрасно работают вместе, вам нужно будет индивидуально кодировать ваш VCL- файл. Есть бесплатные, которые дают стартовые очки, но вам всегда нужно играть с ними.
Для оптимальной работы Varnish убедитесь, что вы запускаете его с -s malloc xG, а не по умолчанию -s file / path / to / file. Также с Varnish есть статичные элементы кеша Varnish так долго, как вы можете.
Если у вас более одного веб-сервера, удалите ETag из заголовка, отправленного Varnish в VCL. Я также удаляю Expires и просто полагаюсь на Age и max-age в заголовках, чтобы браузеры возвращались на сайт.
Версия 1.5 (по состоянию на 3 марта 2011 г.) по-прежнему является самой быстрой версией модуля Memcached от Drupal.org. Я обычно развертываю его, используя одну ячейку на сервер, чтобы уменьшить трафик tcp для соединений с несколькими ячейками в больших масштабах)
Сконфигурируйте кэширование в «Производительности» для внешнего и установите максимальный возраст, который будет отправлять правильные заголовки на прокси-сервер кэширования, такой как Varnish.
Если вы не можете заставить определенные страницы кэшироваться должным образом в Varnish, проверьте сообщения в блоге в Интернете, в которых подробно описано, как проверять запросы. Вот пример сообщения, которое я написал некоторое время назад: Что мешает Varnish и Drupal Pressflow от кэширования просмотров страниц анонимными пользователями
Вы должны выбрать InnoDB (или одно из его других имен от других провайдеров, таких как XtraDB) для MySQL и переместить все таблицы в него. Затем ознакомьтесь с этим сообщением в блоге для получения базовых советов по настройке http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/.
Наличие большого буферного пула принципиально важно. При нагрузочном тестировании сайта включите медленный журнал запросов. Вы, вероятно, хотите сначала захватить запросы, занимающие более 50 мсек, а затем настроить их и периодически сокращать время медленного захвата журнала до тех пор, пока большинство запросов не будут работать с использованием индексов и выполняться довольно быстро.
Другие основы включают использование APC для PHP. Если вы предпочитаете быстрый CGI, а не mod_php, потратьте некоторое время на попытки сделать кэш APC общим для всех экземпляров php, настроив хороший скрипт-обертку. Также убедитесь, что кэш APC находится в файле отображения памяти, чтобы выжать каждый последний бит из PHP.