Recomendaciones

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se explican las prácticas recomendadas a seguir cuando se usa Memorystore para Memcached.

Diseña tu aplicación para controlar los errores de caché

Seguir las prácticas recomendadas de diseño de caché estándar mediante el diseño de tu caché para controlar los errores de caché y la falta de disponibilidad del servicio. Consulta el Acuerdo de Nivel de Servicio a fin de obtener información sobre el compromiso de Memorystore para Memcached con el tiempo de actividad.

Diseña la aplicación para que evite los errores de caché y el tiempo de inactividad temporal del servicio, de modo que no impida que la aplicación recupere datos de la base de datos subyacente que admite tu instancia de Memcached.

Además, si experimentas una falta de disponibilidad del espacio de claves, espera y vuelve a intentar mediante la retirada exponencial. Asegúrate de establecer un límite de tiempo para que finalice la estrategia de reintento.

Conéctate a nodos de Memcached

Cuando consultes nodos de Memcached con comandos como set, get y delete, debes conectarte directamente a las direcciones IP de los nodos. Es posible ejecutar estos comandos en el extremo de descubrimiento automático; sin embargo, esto no se recomienda, porque tiene un rendimiento reducido para la aplicación.

Recomendamos que uses el servicio Auto Discovery de Memorystore para Memcached. Este servicio automatiza la administración de direcciones IP de clústeres cuando se agregan o quitan nodos de tu clúster. Si deseas obtener instrucciones para configurar la detección automática de tu clúster, consulta Usa el Servicio de descubrimiento automático.

Configura de forma correcta el parámetro max-item-size

En esta sección, se explica cómo configurar mejor el parámetro max-item-size. Si quieres conocer los pasos para ajustar este parámetro de configuración, consulta Configura instancias de Memcached. Para obtener una lista completa de los parámetros de configuración de Memcached disponibles, consulta Configuraciones de Memcached.

Valores predeterminados y valores admitidos

Para Memcached de código abierto, el valor mínimo de max-item-size es 1KiB, el valor máximo es 1 GiB, y el valor predeterminado es 1 MiB. Para Memorystore para Memcached, el valor mínimo es 512 KiB, el valor máximo es 128 MiB, y el valor predeterminado es 1 MiB. Además, cualquier valor en el que establezcas esta configuración debe ser divisible por 512 KiB de forma uniforme.

Almacenar en caché una entrada mayor que la max-item-size configurada

Cuando intentas almacenar en caché una entrada más grande que la max-item-size configurada, Memcached falla en la operación y muestra un valor falso. Si es posible, compila lógica en tu aplicación para mostrar este error del cliente OSS de Memcached a fin de que puedas depurarlo. Si intentas almacenar en caché una entrada más grande que la max-item-size configurada, es posible que tu instancia tenga una latencia alta.

Configura max-item-size en el valor máximo

Puedes resolver algunos problemas con el parámetro max-item-size si lo configuras con el valor máximo. Sin embargo, esta no es una buena práctica, por lo que no debes usar esta estrategia en producción. La administración de la memoria de Memcached se basa en bloques, y almacenar elementos que son más grandes que el bloque llevan a una asignación de memoria ineficiente.

Evita los problemas de configuración de max-item-size

Primero, determine qué tamaño máximo de elemento se requiere para su caché. Establece max-item-size para que sea un poco más grande que el tamaño de elemento más grande, como margen de seguridad.

Ten en cuenta que el tamaño de los valores escritos en la caché puede cambiar en tu aplicación con el tiempo. Además, el clúster puede estar mal configurado (por ejemplo, cuando se migra de un entorno a otro). Una medida adicional que puedes tomar es validar el tamaño máximo de un elemento en la aplicación, de modo que se rechace la solicitud si la aplicación intenta almacenar en caché elementos más grandes que la configuración establecida.

Cómo balancear un clúster de Memcached desbalanceado

Cómo se producen los clústeres desbalanceados y los riesgos asociados

En algunas circunstancias excepcionales, cuando creas un nodo de instancia de Memcached, puedes distribuirlo de manera desigual entre las zonas de una región. Esto ocurre cuando una zona no está disponible al mismo tiempo que aprovisionas el clúster.

Un clúster desequilibrado aumenta el potencial de pérdida de datos porque los nodos no están tan distribuidos como deberían. El clúster no vuelve a balancear de forma automática cuando la zona que estuvo inactiva vuelve a conectarse.

Cómo volver a balancear tu clúster

Puedes volver a balancear tu clúster aumentando de forma temporal la cantidad de nodos en tu clúster y, luego, escala horizontalmente nodos a la cantidad original de nodos. Esta acción de escalamiento vertical y horizontal permite que el sistema Memorystore para Memcached vuelva a distribuir los nodos de manera uniforme en las zonas disponibles.

El éxito de este método para rebalancear el clúster depende de la disponibilidad de las zonas en cuestión. En la actualidad, Google Cloud no enumera las zonas disponibles o no disponibles, por lo que solo puedes saber si la zona está en línea si los nodos se equilibran de forma correcta durante la operación de escalamiento.

Prácticas recomendadas de Cloud Monitoring

Si quieres realizar un seguimiento del rendimiento de tu caché a lo largo del tiempo, debes usar Cloud Monitoring con el fin de supervisar algunas métricas esenciales de Memorystore para Memcached:

  • Uso de memoria (memcache.googleapis.com/node/cache_memory)
  • Porcentaje de uso de CPU (memcache.googleapis.com/node/cpu/usage_time)

Hacer un seguimiento de estas dos métricas a lo largo del tiempo te permite determinar con cuánta eficiencia se usa tu clúster, y si debes considerar aumentar o disminuir su tamaño.

Por ejemplo, si las métricas indican que el uso de memoria y de CPU aumentó con el tiempo a más del 80%, es posible que la tendencia continúe. Como resultado, puedes aumentar el tamaño de la instancia con anticipación para que la caché tenga espacio a fin de almacenar valores nuevos a medida que aumentan los requisitos de recursos de la aplicación.

Te recomendamos que configures una alerta para cuando el uso de memoria y CPU alcance el 80%.

De manera alternativa, el seguimiento de estas métricas en el tiempo puede indicar que no estás utilizando todo el espacio y los recursos de CPU que tienes actualmente. En este caso, sería más rentable reducir el tamaño de tu clúster.

¿Qué sigue?