Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

paramètres de session max_streams_*

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

max_streams_for_files_processing_in_cluster_functions

Type
UInt64
Par défaut
0
Historique des versions
VersionValeur par défautCommentaire
25.120Ajoute un nouveau paramètre permettant de limiter le nombre de flux pour le traitement des fichiers dans les *fonctions de table Cluster*

S'il est différent de zéro, limite le nombre de threads qui lisent les données des fichiers dans les fonctions de table Cluster.

max_streams_for_merge_tree_reading

Type
UInt64
Par défaut
0

Si cette valeur n'est pas nulle, limite le nombre de flux de lecture pour la table MergeTree.

max_streams_for_union_step

Type
UInt64
Par défaut
0
Historique des versions
VersionValeur par défautCommentaire
26.50Nouveau paramètre permettant de limiter le nombre de flux de données actifs simultanément dans une étape `UNION` afin de réduire le pic d'utilisation mémoire.

Limite le nombre de flux de données actifs simultanément dans une étape UNION (s'applique à la fois à UNION ALL et à UNION DISTINCT, car UNION DISTINCT est implémenté par une étape UNION ALL suivie d'une étape DISTINCT). Lorsqu'une requête UNION comporte de nombreuses sous-requêtes, elles ouvrent toutes leurs tampons de lecture en même temps, ce qui entraîne une utilisation mémoire proportionnelle au nombre de sous-requêtes. Ce paramètre insère des processeurs Concat pour resserrer le pipeline afin qu'il n'y ait pas plus de ce nombre de flux actifs à la fois, ce qui réduit considérablement le pic de mémoire. La limite réelle correspond au minimum entre cette valeur et max_threads * max_streams_for_union_step_to_max_threads_ratio (si l'une ou l'autre vaut 0, elle est ignorée). Lorsque les deux valent 0, aucun resserrement n'est appliqué. La limite n'est pas non plus appliquée lorsque le plan de requête exige que chaque flux de sortie du UNION reste trié individuellement (par exemple lorsque l'optimisation de lecture dans l'ordre est appliquée sur le UNION) ; dans ce cas, le respect de l'ordre est prioritaire et le resserrement est ignoré.

max_streams_for_union_step_to_max_threads_ratio

Type
Float
Par défaut
8
Historique des versions
VersionValeur par défautCommentaire
26.58Nouveau paramètre : la limite du nombre de flux simultanément actifs dans une étape `UNION` est calculée comme min(max_streams_for_union_step, max_threads * max_streams_for_union_step_to_max_threads_ratio) ; si l’un des deux vaut 0, il n’est pas pris en compte.

Ce ratio, multiplié par max_threads, détermine la limite du nombre de flux simultanément actifs dans une étape UNION (s’applique à la fois à UNION ALL et à UNION DISTINCT). La limite réelle est la plus petite des deux valeurs suivantes : cette valeur calculée et max_streams_for_union_step (si l’une ou l’autre vaut 0, elle est ignorée). Par exemple, avec max_threads = 8 et ce ratio défini sur 1, il y aura au plus 8 flux actifs. Définissez cette valeur sur 0 pour désactiver cette limite basée sur le ratio. Comme pour max_streams_for_union_step, la limite n’est pas appliquée lorsque le plan de requête exige que chaque flux de sortie du UNION reste trié individuellement.

max_streams_multiplier_for_merge_tables

Type
Float
Par défaut
5

Demande davantage de flux lors de la lecture à partir d'une table Merge. Les flux seront répartis entre les tables utilisées par la table Merge. Cela permet de mieux répartir la charge entre les threads et s'avère particulièrement utile lorsque les tables fusionnées n'ont pas la même taille.

max_streams_to_max_threads_ratio

Type
Float
Par défaut
1

Permet d’utiliser plus de sources que de threads, afin de répartir le travail plus uniformément entre eux. Il s’agit vraisemblablement d’une solution temporaire, car il sera possible à l’avenir d’avoir autant de sources que de threads, chaque source pouvant alors sélectionner dynamiquement le travail disponible pour elle-même.

Navigation