Tous les produits
Search
Centre de documentation

Lindorm:Outil de test de performance - Shell

Dernière mise à jour :Aug 27, 2026

AHBench est une suite de tests de référence développée par l'équipe Alibaba Cloud Lindorm. Elle intègre Yahoo! Cloud Serving Benchmark (YCSB) pour tester les performances des clusters Lindorm et HBase en un clic.

Une exécution complète du benchmark comprend six étapes :

  1. Vérifiez les prérequis (connectivité réseau, liste d'autorisation, environnement d'exécution)

  2. Téléchargez et extrayez AHBench

  3. Configurez l'endpoint du cluster

  4. Configurez les variables d'environnement

  5. (Facultatif) Ajustez les paramètres de test

  6. Exécutez une série de tests et analysez les résultats

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster Lindorm ou HBase à tester

  • Une instance Elastic Compute Service (ECS) située dans la même région et utilisant le même type de réseau que le cluster, afin d'exécuter le client de test de charge

    • Utilisez un VPC pour une meilleure sécurité réseau. Si les deux instances utilisent un VPC, elles doivent partager le même ID VPC. Placez l'instance ECS dans la même zone que le cluster pour réduire la latence réseau.

  • L'adresse IP de l'instance ECS ajoutée à la liste d'autorisation de l'instance Lindorm. Pour plus d'informations, consultez Configurer une liste d'autorisation.

  • Le système d'exploitation Linux, JDK 1.8 ou version ultérieure, et Python 2.7 installés sur l'instance ECS

  • Au moins 16 cœurs CPU dédiés sur l'instance ECS

Remarque

N'exécutez pas AHBench sur un environnement de production. Les tests de charge peuvent surcharger le cluster testé.

Télécharger AHBench

Téléchargez AHBench v1.0.5, transférez-le sur l'instance ECS et extrayez l'archive.

Configurer l'endpoint du cluster

Ajoutez l'endpoint du cluster au fichier AHBench/conf/hbase-site.xml. Pour savoir comment trouver l'adresse de connexion Lindorm, consultez Développer des applications à l'aide de l'API Java HBase.

Ajoutez également la propriété suivante au fichier hbase-site.xml :

<property>
  <name>hbase.client.connection.impl</name>
  <value>org.apache.hadoop.hbase.client.AliHBaseUEClusterConnection</value>
</property>

Configurer les variables d'environnement

  1. Ouvrez le fichier de configuration de l'environnement :

    vi AHBench/conf/ahbench-env.properties
  2. Définissez JAVA_HOME sur le chemin d'installation du JDK. Ignorez cette étape si Java est déjà présent dans le PATH du système.

    JAVA_HOME=/usr/java/jdk1.8.0/
  3. Définissez HBASE_VERSION pour qu'elle corresponde à la version HBase du cluster testé : 1 pour la version 1.x, 2 pour la version 2.x.

    HBASE_VERSION=2

Ajuster les paramètres de test (facultatif)

Modifiez le fichier AHBench/conf/ahbench-settings.properties pour personnaliser la compression, l'encodage, le nombre de threads, le volume de données et la taille des champs. Les valeurs par défaut conviennent à la plupart des cas.

Paramètre Valeur par défaut Options Notes
ahbench.table.compression SNAPPY NONE, LZO, ZSTD, SNAPPY, GZ, LZ4 Utilisez ZSTD pour Lindorm, car il offre de meilleurs taux de compression. Tous les systèmes ne prennent pas en charge toutes les options.
ahbench.table.encoding DIFF NONE, DIFF, INDEX Utilisez INDEX pour Lindorm. L'encodage INDEX n'est pas pris en charge par tous les systèmes.

Le fichier de configuration contient des commentaires intégrés pour tous les autres paramètres.

Remarque

AHBench utilise ahbenchtest-read et ahbenchtest-write comme noms de table de test. Ces tables sont supprimées et recréées lors de chaque exécution de test. Assurez-vous que ces noms de table peuvent être supprimés en toute sécurité dans votre cluster.

Exécuter un test

Chaque test comporte deux phases internes : une phase de chargement qui écrit les données de test dans le cluster, et une phase d'exécution qui effectue des opérations de lecture/écriture sur ces données. L'indicateur --skipload permet d'ignorer la phase de chargement ; utilisez-le uniquement lorsque le test précédent s'est terminé avec succès.

Test rapide

Tests portant sur 10 millions de lignes. Nécessite au moins 20 Go d'espace de stockage libre. La durée totale d'exécution est d'environ 40 minutes.

cd AHBench
./fast_test

Test complet

Tests portant sur 2 milliards de lignes. Nécessite au moins 2 To d'espace de stockage libre. La durée totale d'exécution est d'environ 25 heures.

cd AHBench
./full_test

Pour répéter le test complet sans réimporter les données, utilisez l'indicateur --skipload. Cela réduit la durée d'exécution à environ 3,5 heures.

cd AHBench
./full_test --skipload
Remarque

ECS est un environnement virtualisé. Les résultats de performance pour un même type d'instance peuvent varier de 5 à 10 % entre les exécutions. Ce comportement est normal.

Analyser les résultats des tests

Une fois le test terminé, AHBench écrit les résultats dans un fichier CSV (Comma-Separated Values) situé dans le répertoire courant.

  1. Recherchez le fichier CSV :

    ls -ltr
  2. Consultez les résultats :

    cat full_throughput.csv

Ouvrez le fichier CSV dans Excel ou Numbers pour comparer côte à côte plusieurs exécutions de test.

hadoop@nake-ahbench-for-c5 ~/AHBench $ ls -ltr
total 52
drwxr-xr-x 14 hadoop hadoop 4096 Sep  5 10:23 workloads/
-rw-r--r--  1 hadoop hadoop 1421 Sep  5 10:23 README
-rw-r--r--  1 hadoop hadoop  558 Sep  5 10:23 LICENSE
-rwxr-xr-x  1 hadoop hadoop  741 Sep  5 10:23 full_test*
-rwxr-xr-x  1 hadoop hadoop  963 Sep  5 10:23 fast_test*
drwxr-xr-x  5 hadoop hadoop 4096 Sep  5 10:23 tools/
drwxr-xr-x  2 hadoop hadoop 4096 Sep  5 10:31 conf/
drwxrwxr-x  2 hadoop hadoop 4096 Sep  5 10:37 tmp/
drwxr-xr-x  2 hadoop hadoop 4096 Sep  5 10:43 bin/
drwxr-xr-x  2 hadoop hadoop 4096 Sep  5 10:43 suite/
-rw-rw-r--  1 hadoop hadoop  437 Sep  6 11:16 full_throughput.csv
-rw-rw-r--  1 hadoop hadoop  408 Sep  6 11:16 full_spike_latency.csv
drwxrwxr-x  2 hadoop hadoop 4096 Sep  6 11:43 logs/
hadoop@nake-ahbench-for-c5 ~/AHBench $ cat full_throughput.csv
TestName,OperationType,Throughput(rows/s),AverageLatency(us),P95Latency(us),P99Latency(us),P999Latency(us)
full_throughput_single_read,READ,68901.0,2898.706728054881,9255.0,46559.0,108863.0
full_throughput_scan,SCAN,1247157.0,4004.8719123340397,18639.0,47167.0,71103.0
full_throughput_single_write,INSERT,195834.0,1016.75785602,1344.0,3009.0,13295.0
full_throughput_batch_write,BATCH,782735.0,12722.031288233438,20623.0,87743.0,116095.0
hadoop@nake-ahbench-for-c5 ~/AHBench $ cat full_spike_latency.csv
TestName,OperationType,Throughput(rows/s),AverageLatency(us),P95Latency(us),P99Latency(us),P999Latency(us)
full_spike_single_read,READ,4996.0,656.0502980620339,974.0,2335.0,51775.0
full_spike_scan,SCAN,249864.0,1390.0287474438796,2061.0,8035.0,16655.0
full_spike_single_write,INSERT,49971.0,582.7455317893222,664.0,1112.0,5943.0
full_spike_batch_write,BATCH,199871.0,2798.396296975711,2945.0,14951.0,96319.0

Dépannage

Si le test se termine par une erreur, vérifiez les points suivants :

  • La variable JAVA_HOME est correctement définie et Python 2.7 est installé.

  • L'endpoint du cluster dans le fichier hbase-site.xml est correct.

  • La variable HBASE_VERSION correspond à la version HBase réelle du cluster.

  • Le cluster prend en charge l'algorithme de compression spécifié dans le fichier ahbench-settings.properties.

  • Le cluster est en cours d'exécution et accessible depuis l'instance ECS.