Almacenamiento en caché de objetos APC en combinación ¿Almacenamiento en caché de páginas de cachemache / memcached?

2

En la publicación WordPress Caching Comparisons Parte 2 Matt Martz compara diferentes configuraciones de almacenamiento en caché , entre ellos almacenamiento en caché de objetos APC junto con Batcache caching de página. En su publicación, esta combinación parece ser la mejor compensación entre la complejidad de la configuración y la eficiencia. No menciona memcached, así que no estoy seguro de si se usa o no. De la lectura de la publicación de Mark Jaquith Fondo de caché de objetos de APC para WordPress Me parece que su plugin funciona como un backend de reemplazo para ser usado en lugar de memcached que es lo que las instrucciones de instalación de Batcache dice que usar. Así es como ha funcionado en mis experimentos con estos complementos. Es decir. se usa el APC o el backend memcached, pero no juntos y en combinación.

Sin embargo, al ver el video de alto rendimiento de WordPress de Iliya Polihronov y aquí es donde empecé cuando estudiaba el almacenamiento en caché. Tengo la impresión de que el caché de objetos APC se puede usar para el almacenamiento en caché de código de operaciones en combinación con Batcache / memchached para el almacenamiento en caché de página completa, para obtener mejores resultados. (La discusión de batcache está al final del video) ¿Es esto posible y podría haber algún beneficio, o simplemente estoy confundido?

En mi caso, estoy buscando la mejor solución para múltiples servidores virtuales de WordPress (es decir, no multisitio) servidos por un único servidor web (nginx). Esto se ejecuta en medios de estado sólido (Raspberry Pi / tarjeta SD), por lo que sería preferible mantener la memoria caché en la memoria. Tengo acceso completo al sistema y tengo instaladas las extensiones de apc, memcache y memcached.

editar: Al leer la fuente de Batcache, tengo entendido que Batcache usa lo que ofrece object-cache.php , por lo que es APC o el caché de objetos memcached como se usa exclusivamente por los respectivos complementos de backend.

También, encontré la definición de Matt de código de bytes, objetos y caché de páginas al final de his post esclarecedor.

    
pregunta seron 30.06.2013 - 16:03

1 respuesta

4

La regla básica para Memcached es: úselo si está ejecutando varios servidores o conectándose a múltiples bases de datos para los mismos activos.

Otra forma más dura de decirlo: Si no sabes qué es Memcached, probablemente no lo necesites.

Ya que tienes un solo servidor (y probablemente solo una base de datos) no podrás aprovechar varias características de Memcached.

  

Memcached: Distribuido almacenamiento en caché de objetos de memoria

     

APC: optimización de bytecode

Puedes usar una combinación de APC y Memcached, también puedes usar APC con Batcache sin Memcached o varias combinaciones de complementos, por lo que es un poco confuso.

Para aclarar Batcache

Batcache tiene la capacidad de admitir Memcached pero si no tiene Memcached instalado, seguirá usando el caché de objetos de WordPress que se define en su config.php usando define('WP_CACHE', true); y, por lo tanto, APC se aprovechará de eso.

Una de las ventajas de Batcache además de admitir configuraciones complejas de servidores a través de Memcached es que no escribe en el archivo, es por eso que los servicios como WordPress.com lo utilizan. Imagínese si tuvieran que almacenar en caché estático todos sus sitios, serían miles de millones de archivos e imposibles de administrar a través de la E / S de archivos.

Aunque Batcache es bastante simple, la ejecución puede ser compleja, se puede configurar como se ve en los comentarios aquí: enlace

Para aclarar Memcached

Memcached está diseñado para múltiples servidores, por lo que pueden compartir y usar la memoria de una manera inteligente, en esencia, compartirán un grupo de memoria virtual. Cada nodo puede hacer uso de la memoria de otros nodos (un nodo no tiene que ser un servidor web tradicional). A Memcache no le importa qué idioma está utilizando, ya que es compatible con la mayoría de ellos. enlace

Para aclarar APC

APC en términos simples es solo servidor y PHP solamente. Almacena toda la compilación basada en PHP (bytecode) en la RAM.

Para un solo servidor

  1. APC + Mark Jaquith's Dropin + plugin de caché de archivo estático ( super-caché, w3-total , etc, etc) le proporcionará resultados muy rápidos. En otras palabras APC + un caché estático es mucho más rápido en un solo servidor que simplemente Memcached y / o un caché no estático. Por supuesto, puedes combinarlos. en un solo servidor, nunca he intentado eso, es dudoso allí Será cualquier mejora. Utilizar Memcached en un único servidor que ya tiene APC sería como intentar remolcar un automóvil enganchando el frente hacia atrás.

  2. La alternativa es usar APC + Batcache en lugar de un almacenamiento en caché estático plugin, esto probablemente le dará los mismos resultados, solo haga Seguro que tienes un montón de ram. Esta es una buena solución pero requiere más monitoreo del servidor (imo) que solo escribir archivos estáticos porque los servidores siguen siendo una bestia meticulosa.

Si después de realizar una de las acciones anteriores y su sitio sigue teniendo problemas, debe pasar a un nuevo nivel con su hardware o comenzar a pensar en configuraciones más complejas con varios servidores.

También tenga en cuenta que esto no se trata solo de la "velocidad" general del sitio, sino de la velocidad + la concurrencia.

  

No optimices por el bien de esto ... llegarás a un punto en el que la optimización no hace nada a menos que exista una demanda.

Notas:

Cada configuración del servidor es diferente y el almacenamiento en caché está directamente vinculado al rendimiento de su CPU, RAM, código real y configuraciones, por lo que los resultados variarán ... hay muchas opciones de configuración para APC y Memcached.

Es importante tener en cuenta que enlace eventualmente reemplazará a APC.

ps. Pruebe APC en un servidor de desarrollo antes de que comience a funcionar, a menudo es necesario jugar con la configuración o el servidor podría explotar.

    
respondido por el Wyck 01.07.2013 - 03:23

Lea otras preguntas en las etiquetas