> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Contrôle du comportement en cas de surcharge CPU du serveur.

# Surcharge du serveur

<div id="overview">
  ## Vue d’ensemble
</div>

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.

<div id="rejecting-queries">
  ## Rejet des requêtes
</div>

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`.

<div id="dropping-connections">
  ## Rejet des connexions
</div>

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.

<div id="resource-overload-warnings">
  ## Avertissements de surcharge des ressources
</div>

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**

```xml theme={null}

<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>
```
