2008-10-12 16 views
5

Para un sitio LAMP de servidor único (que generalmente está bajo una carga bastante alta), ¿cuál es la mejor manera de usar Memcache?¿Cuál es la mejor manera de usar Memcache con una aplicación de servidor único?

Tiene sentido ejecutar el daemon de Memcache en el mismo servidor que la aplicación, o simplemente va a quitar memoria valiosa de MySQL, dando una pérdida neta de rendimiento. ¿Tiene sentido usar Memcache en este escenario, o es la mejor solución para tener siempre servidores dedicados para Memcache?

Aprecio que el perfil del sitio antes y después sea necesario para responder realmente a esta pregunta, pero preferiría no hacerlo en esta etapa del sitio en vivo. Especialmente porque alguien por ahí ciertamente sabe la respuesta de la parte superior de su cabeza.

Respuesta

10

Por lo general, la recomendación (ver ¿Qué hay de memoria compartida? en el memcached page) es ejecutar memcached en las mismas máquinas como servidores web, en la premisa de que las aplicaciones web son CPU-pesado (que memcached no lo es), mientras que memcached tiene mucha memoria (lo que la mayoría de las aplicaciones web no son, al menos en comparación).

Por lo tanto, si su servidor web tiene mucha memoria, es una buena idea ejecutar memcached en él. YMMV.

0

Otra opción para almacenar en memoria caché: según la escala de información que está almacenando en caché, es el almacenamiento en caché en APC. Debería ejecutar eso (o un caché de código de operación similar) para ayudar a acelerar la entrega de la página PHP de todos modos, así que si está almacenando en caché desde unos pocos, hasta cien o más pequeños (tengo unos 15 KB cada uno) , de más de 70) variables a la vez, puede encontrar algún beneficio al almacenarlas en APC.

Tengo un sitio que almacena en caché algunas búsquedas de bases de datos, y también almacena en caché un archivo config.ini posterior al análisis, y en mi sitio (ocupado), ahorraré literalmente millones de posibles hits de base de datos por día.

Cuestiones relacionadas