Se connecte à un serveur ClickHouse et envoie à plusieurs reprises les requêtes spécifiées.
Syntaxe
$ clickhouse-benchmark --query ["single query"] [keys]ou
$ echo "single query" | clickhouse-benchmark [keys]ou
$ clickhouse-benchmark [keys] <<< "single query"Si vous voulez envoyer plusieurs requêtes, créez un fichier texte et placez chaque requête sur une ligne distincte dans ce fichier. Par exemple :
SELECT * FROM system.numbers LIMIT 10000000;
SELECT 1;Passez ensuite ce fichier via l’entrée standard de clickhouse-benchmark :
clickhouse-benchmark [keys] < queries_file;Options en ligne de commande
--query=QUERY— Requête à exécuter. Si ce paramètre n'est pas fourni,clickhouse-benchmarklira les requêtes depuis l'entrée standard.--query_id=ID— ID de requête.--query_id_prefix=ID_PREFIX— Préfixe d'ID de requête.--queries-format=FORMAT— Format des requêtes lues depuis l'entrée standard. Valeurs possibles :tsv(par défaut, une requête par ligne avec les tabulations échappées) etscript(analyse l'entrée comme un script contenant plusieurs requêtes séparées par des points-virgules). Limitation descript: les requêtesINSERT ... FORMATdoivent tenir sur une seule ligne.-c N,--concurrency=N— Nombre de requêtes queclickhouse-benchmarkenvoie simultanément. Valeur par défaut : 1.-C N,--max_concurrency=N— Augmente progressivement le nombre de requêtes parallèles jusqu'à la valeur spécifiée, en produisant un rapport pour chaque niveau de concurrence.--precise— Active des rapports précis par intervalle avec des métriques pondérées.-d N,--delay=N— Intervalle en secondes entre les rapports intermédiaires (pour désactiver les rapports, définissez cette valeur sur 0). Valeur par défaut : 1.-h HOST,--host=HOST— Hôte du serveur. Valeur par défaut :localhost. Pour le mode de comparaison, vous pouvez utiliser plusieurs clés-h.-i N,--iterations=N— Nombre total de requêtes. Valeur par défaut : 0 (répéter indéfiniment).-r,--randomize— Exécute les requêtes dans un ordre aléatoire s'il y a plus d'une requête en entrée.-s,--secure— Utilise une connexionTLS.-t N,--timelimit=N— Limite de temps en secondes.clickhouse-benchmarkcesse d'envoyer des requêtes lorsque la limite de temps spécifiée est atteinte. Valeur par défaut : 0 (limite de temps désactivée).--port=N— Port du serveur. Valeur par défaut : 9000. Pour le mode de comparaison, vous pouvez utiliser plusieurs clés--port.--confidence=N— Niveau de confiance pour le t-test. Valeurs possibles : 0 (80 %), 1 (90 %), 2 (95 %), 3 (98 %), 4 (99 %), 5 (99,5 %). Valeur par défaut : 5. Dans le mode de comparaison,clickhouse-benchmarkeffectue le test t de Student indépendant à deux échantillons afin de déterminer si les deux distributions ne diffèrent pas au niveau de confiance sélectionné.--cumulative— Affiche des données cumulées au lieu des données par intervalle.--database=DATABASE_NAME— Nom de la base de données ClickHouse. Valeur par défaut :default.--user=USERNAME— Nom d'utilisateur ClickHouse. Valeur par défaut :default.--password=PSWD— Mot de passe de l'utilisateur ClickHouse. Valeur par défaut : chaîne vide.--stacktrace— Affichage des traces de pile. Lorsque cette clé est définie,clickhouse-benchmarkaffiche les traces de pile des exceptions.--stage=WORD— Étape du traitement de la requête sur le serveur. ClickHouse arrête le traitement de la requête et renvoie une réponse àclickhouse-benchmarkà l'étape spécifiée. Valeurs possibles :complete,fetch_columns,with_mergeable_state. Valeur par défaut :complete.--roundrobin— Au lieu de comparer les requêtes pour différents--host/--port, sélectionnez simplement un--host/--portaléatoire pour chaque requête et envoyez-lui la requête.--reconnect=N— Contrôle le comportement de reconnexion. Valeurs possibles : 0 (ne jamais se reconnecter), 1 (se reconnecter pour chaque requête) ou N (se reconnecter après chaque N requêtes). Valeur par défaut : 0.--max-consecutive-errors=N— Nombre d'erreurs consécutives autorisées. Valeur par défaut : 0.--ignore-error,--continue_on_errors— Continue le test même si certaines requêtes ont échoué.--client-side-time— Affiche le temps incluant la communication réseau au lieu du temps côté serveur ; notez que, pour les versions du serveur antérieures à 22.8, le temps affiché est toujours le temps côté client.--proto-caps— Active/désactive le chunking lors du transfert des données. Choix possibles (séparés par des virgules) :chunked_optional,notchunked,notchunked_optional,send_chunked,send_chunked_optional,send_notchunked,send_notchunked_optional,recv_chunked,recv_chunked_optional,recv_notchunked,recv_notchunked_optional. Valeur par défaut :notchunked.--help— Affiche le message d'aide.--verbose— Augmente le niveau de détail du message d'aide.
Si vous souhaitez appliquer certains paramètres aux requêtes, indiquez-les sous la forme d’une clé --<session setting name>= SETTING_VALUE. Par exemple, --max_memory_usage=1048576.
Options des variables d'environnement
Le nom d'utilisateur, le mot de passe et l'hôte peuvent être définis à l'aide des variables d'environnement CLICKHOUSE_USER, CLICKHOUSE_PASSWORD et CLICKHOUSE_HOST.
Les arguments de ligne de commande --user, --password ou --host sont prioritaires sur les variables d'environnement.
Sortie
Par défaut, clickhouse-benchmark génère un rapport à chaque intervalle --delay.
Exemple de rapport :
Queries executed: 10.
localhost:9000, queries 10, QPS: 6.772, RPS: 67904487.440, MiB/s: 518.070, result RPS: 67721584.984, result MiB/s: 516.675.
0.000% 0.145 sec.
10.000% 0.146 sec.
20.000% 0.146 sec.
30.000% 0.146 sec.
40.000% 0.147 sec.
50.000% 0.148 sec.
60.000% 0.148 sec.
70.000% 0.148 sec.
80.000% 0.149 sec.
90.000% 0.150 sec.
95.000% 0.150 sec.
99.000% 0.150 sec.
99.900% 0.150 sec.
99.990% 0.150 sec.Dans le rapport, vous trouverez :
-
Le nombre de requêtes dans le champ
Queries executed:. -
Une chaîne d’état contenant, dans l’ordre :
- L’endpoint du serveur ClickHouse.
- Le nombre de requêtes traitées.
- QPS : le nombre de requêtes exécutées par le serveur par seconde sur une période spécifiée dans l’argument
--delay. - RPS : le nombre de lignes lues par le serveur par seconde sur une période spécifiée dans l’argument
--delay. - MiB/s : le nombre de mébioctets lus par le serveur par seconde sur une période spécifiée dans l’argument
--delay. - RPS de résultat : le nombre de lignes renvoyées par le serveur dans le résultat d’une requête par seconde sur une période spécifiée dans l’argument
--delay. - MiB/s de résultat. Le nombre de mébioctets renvoyés par le serveur dans le résultat d’une requête par seconde sur une période spécifiée dans l’argument
--delay.
-
Les percentiles des temps d’exécution des requêtes.
Mode de comparaison
clickhouse-benchmark peut comparer les performances de deux serveurs ClickHouse en fonctionnement.
Pour utiliser le mode de comparaison, indiquez les endpoints des deux serveurs à l’aide de deux paires de clés --host, --port. Les clés sont associées selon leur position dans la liste des arguments : le premier --host correspond au premier --port, et ainsi de suite. clickhouse-benchmark établit des connexions avec les deux serveurs, puis envoie des requêtes. Chaque requête est adressée à un serveur sélectionné aléatoirement. Les résultats sont affichés dans un tableau.
Exemple
$ echo "SELECT * FROM system.numbers LIMIT 10000000 OFFSET 10000000" | clickhouse-benchmark --host=localhost --port=9001 --host=localhost --port=9000 -i 10Loaded 1 queries.
Queries executed: 5.
localhost:9001, queries 2, QPS: 3.764, RPS: 75446929.370, MiB/s: 575.614, result RPS: 37639659.982, result MiB/s: 287.168.
localhost:9000, queries 3, QPS: 3.815, RPS: 76466659.385, MiB/s: 583.394, result RPS: 38148392.297, result MiB/s: 291.049.
0.000% 0.258 sec. 0.250 sec.
10.000% 0.258 sec. 0.250 sec.
20.000% 0.258 sec. 0.250 sec.
30.000% 0.258 sec. 0.267 sec.
40.000% 0.258 sec. 0.267 sec.
50.000% 0.273 sec. 0.267 sec.
60.000% 0.273 sec. 0.267 sec.
70.000% 0.273 sec. 0.267 sec.
80.000% 0.273 sec. 0.269 sec.
90.000% 0.273 sec. 0.269 sec.
95.000% 0.273 sec. 0.269 sec.
99.000% 0.273 sec. 0.269 sec.
99.900% 0.273 sec. 0.269 sec.
99.990% 0.273 sec. 0.269 sec.
No difference proven at 99.5% confidence