HCL Commerce Version 9.1.10.0 or later

Utilitaires HCL Cache

Le pod de gestionnaire HCL Cache inclut les utilitaires suivants :

HCL Cache-benchmark

L'utilitaire HCL Cache-benchmark vous permet de comparer des opérations HCL Cache telles que Put, Get, Invalidate et Clear. Cet utilitaire vous fournit une référence pour la durée de chaque opération du client. Les performances du client, du réseau et du serveur Redis auront un impact sur les résultats.

Comme il existe un aller-retour réseau avec chaque opération de cache, les nombres signalés représentent les réponses moyennes du point de vue du client, et non les limites du serveur Redis. A titre de référence, les opérations de cache telles que Get et Put doivent prendre environ une milliseconde. Les performances des opérations d'annulation et d'invalidation varient en fonction de la quantité de données sur le serveur Redis et de la quantité de données effacées.

Lorsque vous utilisez cet outil dans un environnement de production, considérez qu'il peut avoir un impact sur le système. En outre, selon la configuration utilisée pour le nombre de clés et la taille de la charge, la mémoire du serveur Redis peut être pleine. Par défaut, l'outil tente d'insérer 50 000 clés chacune avec un encombrement de 2 k, ce qui conduit à une utilisation temporaire de la mémoire Redis de 100 Mo au plus.

Lorsque vous travaillez dans des environnements en cluster, un seul serveur est testé. Le cache par défaut (RemoteOnlyCache1) est mappé à l'emplacement 3205. D'autres nœuds peuvent être utilisés en faisant basculer le nom du cache, comme suit :
   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}
Utilisation
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
Exemples de rapport

Les exemples de rapports suivants ont été obtenus à partir d'environnements de test HCL Commerce dans GCP et Azure. L'utilitaire hcl-cache-benchmark étant à unité d'exécution unique, les rapports n'indiquent pas les limites de capacité totales, mais fournissent un point de référence pour la comparaison.

La durée moyenne des opérations Get et Put doit idéalement être inférieure à 1 ms.

GCP - Installation de Bitnami sur un cluster Kubernetes local à l'aide de e2-custom-4-32768 (UC Intel Skylake)
---------------------------------------------   -------------------------------------------------
| 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 - Installation de Bitnami sur un cluster Kubernetes local à l'aide de 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 - Installation de Bitnami sur un cluster Kubernetes local à l'aide de 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

L'utilitaire HCL Cache utilise un fichier RDB Redis. Les fichiers RDB sont des instantanés ponctuels du contenu de la mémoire Redis et sont utilisés pour la réplication et la reprise en ligne. Consultez ce lien pour plus d'informations : https://redis.io/topics/persistence.

L'utilitaire analyse le contenu d'un fichier RDB REDIS et génère un rapport utile pour le réglage et le dépannage.

Les informations comprises dans le rapport sont les suivantes :
  • Liste des caches trouvés, avec le nombre d'entrées et la taille estimée en Mo (encombrement)
  • Analyse d'histogramme de :
    • Encombrements des entrées de cache (taille en octets)
    • Durée jusqu'à expiration
    • Délai d'inactivité
  • Entrées de cache principales par taille
  • Dépendances principales par taille
Obtention d'un fichier RDB
Si votre serveur Redis est déjà configuré avec la persistance RDB (CONFIG SAVE GET), les fichiers RDB sont déjà générés à intervalles configurés. Le fichier dump.rdb se trouve dans le répertoire /data dans le conteneur.

Vous pouvez également demander des fichiers RDB à la demande à l'aide des commandes SAVE et BGSAVE.

La commande SAVE est synchrone. Etant donné que la génération de fichier peut prendre quelques secondes, le serveur Redis peut devenir indisponible ou être redémarré.

La commande BGSAVE est asynchrone et ne bloque pas le serveur Redis. Le journal Redis (journaux kubectl) inclut des informations sur le moment où les sauvegardes en arrière-plan sont démarrées et terminées :
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
Exécution de l'utilitaire HCL Cache-rdb
L'utilitaire peut être démarré à l'aide du script HCL Cache-rdb.sh. Une erreur s'affiche si le fichier RDB est introuvable.

La taille du segment de mémoire disponible pour l'utilitaire est limitée par les limites du conteneur. La taille disponible est imprimée lors du démarrage : (par exemple, INFO: -Xmx 1536mb).

Lors de l'analyse de fichiers RDB volumineux, il est possible que l'utilitaire échoue avec l'erreur INFO : -Xmx OutOfMemory. Dans ce cas, vous pouvez augmenter la taille du conteneur, spécifier manuellement une nouvelle limite -Xmx ou copier l'utilitaire dans un environnement distinct qui peut exécuter Java version 8 ou ultérieure.

L'exécution de l'utilitaire dans un environnement distinct est également recommandée pour éviter d'avoir à copier les fichiers RDB dans le conteneur.

Utilisation
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

Avec le cluster Redis, les caches sont affectés à des nœuds particuliers. L'affectation de l'emplacement est déterminée à l'aide de l'espace de nom et du nom du cache : {cache-NAMESPACE-CACHENAME}. Cet utilitaire peut être utilisé pour la planification, car il permet de prévisualiser la façon dont une liste de caches est affectée sur un nombre donné de nœuds Redis.

L'emplacement d'un cache peut également être déterminé à l'aide de la commande CLUSTER KEYSLOT.

L'application de gestionnaire de cache a fourni l'interface REST "/cache/redisNodeInfo" qui fournit le mappage de nœud et de cache pour un environnement en cours d'exécution. Ce mappage s'affiche également dans le tableau de bord Grafana "HCL Cache-Remote".

Informations d'utilisation
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.

Eléments sous licence - Propriété d'HCL Technologies Limited. (C) Copyright HCL Technologies Limited 2022