Skip to main content
Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.

max_threads

Le nombre maximal de threads de traitement des requêtes, à l’exclusion des threads utilisés pour récupérer des données depuis des serveurs distants (voir le paramètre ‘max_distributed_connections’). Ce paramètre s’applique aux threads qui exécutent en parallèle les mêmes étapes du pipeline de traitement des requêtes. Par exemple, lors de la lecture d’une table, s’il est possible d’évaluer des expressions avec des fonctions, de filtrer avec WHERE et de pré-agréger pour GROUP BY en parallèle en utilisant au moins ‘max_threads’ threads, alors ‘max_threads’ sont utilisés. Pour les requêtes qui se terminent rapidement à cause d’une LIMIT, vous pouvez définir une valeur plus faible pour ‘max_threads’. Par exemple, si le nombre nécessaire d’entrées se trouve dans chaque bloc et que max_threads = 8, alors 8 blocs sont récupérés, alors qu’il aurait suffi d’en lire un seul. Plus la valeur de max_threads est faible, moins la mémoire consommée est importante. Par défaut, le paramètre max_threads correspond au nombre de threads matériels (nombre de CPU cores) disponibles pour ClickHouse. Dans un cas particulier, pour les processeurs x86 avec moins de 32 CPU cores et avec SMT (par ex. Intel HyperThreading), ClickHouse utilise par défaut le nombre de cœurs logiques (= 2 x le nombre de cœurs physiques). Sans SMT (par ex. Intel HyperThreading), cela correspond au nombre de CPU cores. Pour les utilisateurs de ClickHouse Cloud, la valeur par défaut s’affiche sous la forme auto(N), où N correspond à la taille vCPU de votre service, par ex. 2vCPU/8GiB, 4vCPU/16GiB, etc. Consultez l’onglet Settings dans la Cloud Console pour obtenir la liste de toutes les tailles de service.

max_threads_for_indexes

Le nombre maximal de threads pour traiter les indices.

max_threads_min_free_memory_per_thread

Réduit max_threads lorsque le serveur subit une pression mémoire, afin d’éviter de lancer des requêtes fortement parallélisées qui risquent d’atteindre la limite de mémoire. La mémoire libre est calculée en soustrayant de max_server_memory_usage du serveur la mémoire actuellement suivie par le memory tracker global. Si cette mémoire libre est inférieure à max_threads multiplié par cette valeur, max_threads est réduit au plus grand N tel que N * value <= free_memory, avec un minimum de 1. Définissez cette valeur sur 0 pour désactiver cette limite. Par exemple, avec la valeur par défaut de 1 GiB et 32 GiB de mémoire libre, max_threads est plafonné à 32 ; avec 1 GiB de mémoire libre, il retombe à 1. Ce paramètre s’applique au parallélisme côté lecture (SELECT, UNION, INTERSECT/EXCEPT, ainsi que la partie SELECT de INSERT ... SELECT). Pour la partie écriture, voir max_insert_threads_min_free_memory_per_thread.
Dernière modification le 23 juillet 2026