15.5.5.4: ¿Cuál es el tamaño máximo de un objeto que puede almacenar en Memcache y es configurable que?
El tamaño máximo predeterminado del objeto es 1MB. En memcached 1.4.2 y posterior puede cambiar el tamaño máximo de un objeto utilizando la opción de línea de comando -I.
Para las versiones anteriores, para aumentar este tamaño, debe volver a compilar memcached. Puede modificar el valor de POWER_BLOCK dentro del archivo slabs.c dentro de la fuente.
En memcached 1.4.2 y superior, puede configurar el tamaño de objeto máximo soportado utilizando la opción -I de línea de comando. Por ejemplo, para aumentar el tamaño máximo del objeto a 5 MB:
$ memcached -I 5m
Sin embargo, aun cuando el aumento de la memoria, esto no es una buena elección de la OMI. Una mejor idea sería dividir el objeto en trozos más pequeños y luego almacenar en caché partes indididuales de él.
Respuesta corta: Debido a cómo funciona el algoritmo del asignador de memoria.
Respuesta larga: el motor de almacenamiento de memoria de Memcached (que se puede conectar/ajustar en el futuro ...), utiliza un enfoque de planchas para la gestión de la memoria. La memoria se divide en trozos de losas de diferentes tamaños, comenzando en un número mínimo y ascendiendo por un factorial hasta el mayor valor posible.
Diga el valor mínimo es de 400 bytes, y el valor máximo es 1 megabyte, y el factorial es 1,20:
losa 1 - 400 bytes losa 2 - 480 bytes de la losa 3 - 576 bytes ... etc.
Cuanto más grande es la losa, más espacio hay entre ella y la losa anterior. Por lo tanto, cuanto mayor es el valor máximo, menos eficiente es el almacenamiento de la memoria. Memcached también tiene que preasignar algo de memoria para cada losa que existe, por lo que establecer un factorial más pequeño con un valor máximo más grande requerirá incluso más gastos generales.
No tenemos otra razón por la que no le gustaría hacer eso ... Si estamos hablando de una página web y que estamos tratando de almacenar valores/carga tan grande, es probable que hacer algo mal .A ese tamaño, tomará una cantidad notable de tiempo para cargar y descomprimir la estructura de datos en la memoria, y es probable que su sitio no funcione muy bien.
Si realmente desea almacenar elementos de más de 1MB, puede recompilar memcached con un valor slabs.c: POWER_BLOCK editado, o utilizar el ineficiente malloc/backend gratuito. Otras sugerencias incluyen una base de datos, MogileFS, etc.
¿Cómo es tan grande? ¡Eso parece bastante grande! –
lo guarda en caché en un sistema de archivos en lugar de en Memcache, o almacena en caché cada elemento de la matriz individualmente – nos
Almacenamiento en caché y 320MB ... whooooooooooooooooooooooop – diEcho