La respuesta de Markdorison es básicamente el método aceptado para atacar este problema. Lo llevaré un poco más allá.
Cuando tiene Pressflow para D6 o Drupal para D7, Memcached y Varnish funcionan bien juntos, necesitará codificar su archivo VCL de forma personalizada . Hay algunos gratuitos disponibles que hacen puntos de partida, pero siempre necesitas jugar con ellos.
Para que Varnish funcione de manera óptima, asegúrese de iniciarlo con -s malloc xG en lugar del valor predeterminado de -s file / path / to / file. Además, con Varnish, tenga elementos estáticos de caché de Varnish durante el mayor tiempo posible.
Si tiene más de un servidor web, elimine la ETag del encabezado enviado a Varnish en VCL. También elimino Expires y simplemente confío en Age y max-age en los encabezados para que los navegadores vuelvan al sitio.
La versión 1.5 (a partir del 3 de marzo de 2011) sigue siendo la versión más rápida del módulo Memcached de Drupal.org. Normalmente lo implemento usando un único contenedor por servidor para reducir el tráfico tcp para conexiones a múltiples contenedores a gran escala)
Configure el almacenamiento en caché en "Rendimiento" como externo y establezca una antigüedad máxima que enviará los encabezados correctos a un proxy de almacenamiento en caché como Varnish.
Si no puede hacer que ciertas páginas se almacenen correctamente en Varnish, consulte las publicaciones de blog en la web que detallan cómo inspeccionar las solicitudes. Aquí hay una publicación de ejemplo que escribí hace un tiempo: ¿Qué está impidiendo que Varnish y Drupal Pressflow almacenen en caché vistas de páginas de usuarios anónimos?
Debe elegir InnoDB (o uno de sus otros nombres de otros proveedores como XtraDB) para MySQL y mover todas las tablas a él. Luego, consulte esta publicación de blog para obtener consejos básicos sobre la sintonización http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
Tener una gran agrupación de almacenamiento intermedio es fundamentalmente importante. Al probar la carga del sitio, active el registro lento de consultas. Es probable que al principio desee capturar consultas que demoren más de 50 ms, luego ajustar las consultas y reducir de manera repetitiva el tiempo de captura de registro lento hasta que tenga la mayoría de las consultas en ejecución utilizando índices y ejecutándose con bastante rapidez.
Otros conceptos básicos implican tener APC para PHP. Si opta por un CGI rápido en lugar de mod_php, dedique un tiempo a intentar que la caché APC se comparta entre las instancias de php configurando un buen script de envoltura. También asegúrese de que el caché APC esté en un archivo mapeado de memoria para exprimir hasta el último bit de PHP.