Para empezar con el tema de caché, repasa http://docs.moodle.org/en/Apache y http://docs.moodle.org/en/Performance. Básicamente tienes que habilitar y configurar los módulos mod_cache, mod_disk_cache y mod_expires de Apache, que te cachearán el contenido en primera instancia.
Si quieres mayor independencia del sistema de caché, te recomendaría memcached, que básicamente es una aplicación intermedia entre el servidor y el usuario, que también cachea las peticiones.
Por último, yo repasaría los parámetros de configuración de la base de datos (¿mysql?) para optimizar la caché de consultas de la misma... revisa este tema.
PD: tal vez este otro tema también te interese.
Cosas de Desarrolladores
Se me muere el servidor, pasaje a store procedures?
Este hilo de discusión ha sido cerrado por lo que no admite respuestas.