Passer au contenu principal

Vue d’ensemble

Il arrive que le serveur soit surchargé pour différentes raisons. Afin de déterminer la surcharge CPU actuelle, le serveur ClickHouse calcule le rapport entre le temps d’attente CPU (métrique OSCPUWaitMicroseconds) et le temps d’activité (métrique OSCPUVirtualTimeMicroseconds). Lorsque le serveur est surchargé au-delà d’un certain rapport, il peut être judicieux d’écarter certaines requêtes, voire de rejeter des demandes de connexion, afin de ne pas augmenter davantage la charge. Il existe un paramètre du serveur, os_cpu_busy_time_threshold, qui contrôle le temps d’activité minimal à partir duquel on considère que le CPU effectue un travail utile. Si la valeur actuelle de la métrique OSCPUVirtualTimeMicroseconds est inférieure à cette valeur, la surcharge CPU est considérée comme nulle.

Rejet des requêtes

Le rejet des requêtes est contrôlé par les paramètres au niveau de la requête min_os_cpu_wait_time_ratio_to_throw et max_os_cpu_wait_time_ratio_to_throw. Si ces paramètres sont définis et que min_os_cpu_wait_time_ratio_to_throw est inférieur à max_os_cpu_wait_time_ratio_to_throw, la requête est alors rejetée et l’erreur SERVER_OVERLOADED est générée avec une certaine probabilité si le ratio de surcharge est au moins égal à min_os_cpu_wait_time_ratio_to_throw. Cette probabilité est déterminée par interpolation linéaire entre les ratios minimum et maximum. Par exemple, si min_os_cpu_wait_time_ratio_to_throw = 2, max_os_cpu_wait_time_ratio_to_throw = 6 et cpu_overload = 4, alors la requête sera rejetée avec une probabilité de 0.5.

Rejet des connexions

Le rejet des connexions est contrôlé par les paramètres au niveau du serveur min_os_cpu_wait_time_ratio_to_drop_connection et max_os_cpu_wait_time_ratio_to_drop_connection. Ces paramètres peuvent être modifiés sans redémarrer le serveur. Le principe de ces paramètres est similaire à celui du rejet des requêtes. La seule différence ici est que, si le serveur est surchargé, la tentative de connexion sera rejetée côté serveur.

Avertissements de surcharge des ressources

ClickHouse consigne également des avertissements de surcharge du CPU et de la mémoire dans la table system.warnings lorsque le serveur est en surcharge. Vous pouvez personnaliser ces seuils dans la configuration du serveur. Exemple

<resource_overload_warnings>
    <cpu_overload_warn_ratio>0.9</cpu_overload_warn_ratio>
    <cpu_overload_clear_ratio>0.8</cpu_overload_clear_ratio>
    <cpu_overload_duration_seconds>600</cpu_overload_duration_seconds>
    <memory_overload_warn_ratio>0.9</memory_overload_warn_ratio>
    <memory_overload_clear_ratio>0.8</memory_overload_clear_ratio>
    <memory_overload_duration_seconds>600</memory_overload_duration_seconds>
</resource_overload_warnings>
Dernière modification le 29 juin 2026