HCL Commerce Version 9.1.10.0 or later

Programas de utilidad de HCL Cache

El pod de gestor HCL Cache incluye los programas de utilidad siguientes:

HCL Cache-benchmark

El programa de utilidad HCL Cache-benchmark le permite realizar operaciones de referencia HCL Cache comoPut, Get, Invalidate y Clear. Este programa de utilidad le proporciona una referencia sobre cuánto tiempo tarda cada operación en el cliente. El rendimiento del cliente, la red y el servidor Redis afectará a los resultados.

Como hay un ida y vuelta de red con cada operación de memoria caché, los números notificados representan las respuestas medias desde la perspectiva del cliente, y no los límites del servidor Redis. Como referencia, las operaciones de memoria caché como Gets y Puts deben tardar unos milisegundos. El rendimiento de las operaciones de borrado e invalidación variará en función de la cantidad de datos en el servidor Redis y la cantidad de datos que se borren.

Cuando utilice esta herramienta en un entorno de producción, tenga en cuenta que puede tener un impacto en el sistema. Además, dependiendo de la configuración utilizada para el número de claves y el tamaño de la carga útil, la memoria del servidor Redis podría estar llena. De forma predeterminada, la herramienta intentará insertar 50.000 claves cada una con una huella de 2k, lo que dará lugar a un uso temporal de la memoria de Redis de hasta 100 mb.

Al trabajar en entornos en clúster, solo se probará un servidor. La memoria caché predeterminada (RemoteOnlyCache1) se correlaciona con la ranura 3205. Se pueden utilizar otros nodos conmutando el nombre de memoria caché, como se muestra a continuación:
   3205 {cache-benchmark-services/cache/benchmark/RemoteOnlyCache1}
  15590 {cache-benchmark-services/cache/benchmark/RemoteOnlyCache2}
  11463 {cache-benchmark-services/cache/benchmark/RemoteOnlyCache3}
   7200 {cache-benchmark-services/cache/benchmark/RemoteOnlyCache4}
Usage
usage: java -jar hcl-cache-benchmark
   -c,--cache <Cache Name>        Cache name. Defaults to
                                  services/cache/benchmark/RemoteOnlyCache1
                                  under benchmark namespace
   -h,--help                      Prints this usage information
   -k,--keys <Number of Keys>     Number of keys to insert. Defaults to 50000
   -y,--noprompt                  Do not show the warning and prompt for
                                  confirmation before starting the benchmark
   -z,--size <Value Size>         Value size. Defaults to 2048 bytes
Informes de ejemplo

Los siguientes informes de ejemplo se han obtenido de entornos de prueba HCL Commerce en GCP y Azure. El programa de utilidad hcl-cache-benchmark tiene una sola hebra, por lo que los informes no indican límites de capacidad totales, sino que proporcionan un punto de referencia para la comparación.

El tiempo medio para las operaciones Get y Put debería ser idealmente inferior a 1 ms.

GCP: Instalación de Bitnami en el clúster local de Kubernetes utilizando e2-custom-4-32768 (Intel Skylake CPU)
---------------------------------------------   -------------------------------------------------
| Operation       | Executions | Time (sec) |   | Mean (ms) | 90p (ms)  | 95p (ms)  | 99p (ms)  |
---------------------------------------------   -------------------------------------------------
| put             |     50,000 |      19.08 |   |     0.382 |     0.463 |     0.514 |     0.715 |
| get             |     50,000 |      12.68 |   |     0.254 |     0.326 |     0.354 |     0.427 |
| invalidate      |     25,000 |       7.35 |   |     0.294 |     0.376 |     0.402 |     0.452 |
| clear           |          1 |       0.51 |   |   510.711 |   510.657 |   510.657 |   510.657 |
---------------------------------------------   -------------------------------------------------
Azure: Instalación de Bitnami en el clúster local de Kubernetes utilizando Standard_F4s_v2
---------------------------------------------   -------------------------------------------------
| Operation       | Executions | Time (sec) |   | Mean (ms) | 90p (ms)  | 95p (ms)  | 99p (ms)  |
---------------------------------------------   -------------------------------------------------
| put             |     50,000 |      30.92 |   |     0.618 |     0.741 |     0.793 |     0.934 |
| get             |     50,000 |      26.97 |   |     0.539 |     0.622 |     0.659 |     0.764 |
| invalidate      |     25,000 |      13.92 |   |     0.557 |     0.661 |     0.694 |     0.803 |
| clear           |          1 |       0.49 |   |   487.550 |   487.326 |   487.326 |   487.326 |
---------------------------------------------   -------------------------------------------------
Azure: Instalación de Bitnami en el clúster local de Kubernetes mediante Standard_E8-4s_v5
---------------------------------------------   -------------------------------------------------
| Operation       | Executions | Time (sec) |   | Mean (ms) | 90p (ms)  | 95p (ms)  | 99p (ms)  |
---------------------------------------------   -------------------------------------------------
| put             |     50,000 |      11.58 |   |     0.232 |     0.279 |     0.324 |     0.469 |
| get             |     50,000 |       8.47 |   |     0.169 |     0.200 |     0.222 |     0.289 |
| invalidate      |     25,000 |       4.03 |   |     0.161 |     0.190 |     0.205 |     0.244 |
| clear           |          1 |       0.41 |   |   412.680 |   412.615 |   412.615 |   412.615 |
---------------------------------------------   -------------------------------------------------

HCL Cache-rdb

La utilidad HCL Cache-rdb consume un archivo RDB de Redis. Los archivos RDB son instantáneas de punto en tiempo del contenido de memoria de Redis y se utilizan para replicación y conmutación por error. Para obtener más información, consulte el enlace siguiente: https://redis.io/topics/persistence.

El programa de utilidad analiza el contenido de un archivo RDB de Redis y genera un informe que es útil para ajustar y resolver problemas.

El informe incluye la información siguiente:
  • Lista de memorias caché encontradas, con número de entradas y tamaño estimado en MB (espacio)
  • Análisis de histograma de:
    • Huella de entrada de memoria caché (tamaño en bytes)
    • Tiempo de caducidad
    • Tiempo desocupado
  • Entradas de memoria caché principales por tamaño
  • Principales dependencias por tamaño
Obtención de un archivo RDB
Si el servidor Redis ya está configurado con la persistencia RDB (CONFIG SAVE GET), los archivos RDB ya se generan en los intervalos configurados. El archivo dump.rdb se encuentra en el directorio /data en el contenedor.

También puede solicitar archivos RDB a petición utilizando los comandos SAVE y BGSAVE.

El mandato SAVE es síncrono. Puesto que la generación de archivos puede tardar algunos segundos, es posible que el servidor Redis no esté disponible o se reinicie.

El BGSAVE mandato es asíncrono y no bloquea el servidor Redis. El registro de Redis (kubectl logs) incluirá información sobre cuándo se inician y completan las guardados en segundo plano:
1:M 23 Jun 2021 14:23:31.568 * Background saving started by pid 3763
3763:C 23 Jun 2021 14:23:32.921 * DB saved on disk
3763:C 23 Jun 2021 14:23:32.926 * RDB: 5 MB of memory used by copy-on-write
1:M 23 Jun 2021 14:23:33.001 * Background saving terminated with success
Ejecución del programa de utilidad HCL Cache-rdb
El programa de utilidad se puede iniciar utilizando el script HCL Cache-rdb. Se visualizará un error si no se encuentra el archivo RDB.

El tamaño del almacenamiento dinámico disponible para el programa de utilidad está restringido por los límites de contenedor. El tamaño disponible se imprime durante el inicio: (por ejemplo, INFO: -Xmx 1536mb).

Al analizar archivos RDB grandes, es posible que el programa de utilidad falle con INFO: Error -Xmx OutOfMemory. En ese caso, puede aumentar el tamaño del contenedor, especificar manualmente un nuevo límite -Xmx o copiar el programa de utilidad en un entorno independiente que pueda ejecutar Java 8+.

También se recomienda ejecutar el programa de utilidad en un entorno separado para evitar tener que copiar los archivos RDB en el contenedor.

Usage
usage: java -jar rdbparser.jar [options]
 -c,--cache <arg>       Cache name. Defaults to all
 -f,--file <arg>        RDB file. Defaults to dump.rdb in current
                        directory
 -h,--help              Prints this help
 -k,--key <arg>         Dumps keys that contain the parameter. In this
                        mode the report is not shown
 -n,--namespace <arg>   Namespace. Defaults to all

HCL Cache-node

Con el clúster de Redis, las memorias caché se asignan a nodos concretos. El valor de ranura se determina utilizando el espacio de nombres y el nombre de memoria caché: {cache-NAMESPACE-CACHENAME}. Este programa de utilidad se puede utilizar para la planificación ya que ayuda a obtener una vista previa de cómo se asigna una lista de memorias caché en un número determinado de nodos de Redis.

La ranura para una memoria caché también se puede determinar utilizando el mandato CLUSTER KEYSLOT.

La aplicación gestor de memoria caché ha proporcionado la interfaz de REST "/cache/redisNodeInfo" que proporciona nodo y correlación de memoria caché para un entorno en ejecución. Esta correlación también se visualiza en el panel Grafana "HCL Cache-Remote".

Información de uso
usage: java -jar cache_node.jar [options]
This utility can help you plan which node an HCL Cache will be assigned
to.
 -c,--cache-list <arg>    Comma separated list of caches.
 -f,--cache-file <arg>    File containing list of caches. Defaults to
                          cacheList.txt in current directory.
 -h,--help                Prints this help.
 -n,--namespaces <arg>    Comma separated list of namespaces, defaults to
                          [demoqaauth, demoqalive].
 -r,--redis-nodes <arg>   Number of Redis nodes (3-10). Defaults to 3.

Materiales bajo licencia: Propiedad de HCL Technologies Limited. (C) Copyright HCL Technologies Limited 2022