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

> Controle do comportamento em caso de sobrecarga de CPU no servidor.

# Sobrecarga do servidor

<div id="overview">
  ## Visão geral
</div>

Às vezes, o servidor pode ficar sobrecarregado por vários motivos. Para determinar a sobrecarga atual da CPU,
o servidor ClickHouse calcula a proporção entre o tempo de espera da CPU (métrica `OSCPUWaitMicroseconds`) e o tempo em uso
(métrica `OSCPUVirtualTimeMicroseconds`). Quando o servidor fica sobrecarregado acima de uma certa proporção,
faz sentido descartar algumas consultas ou até mesmo recusar solicitações de conexão para não aumentar ainda mais a carga.

Há uma configuração no servidor, `os_cpu_busy_time_threshold`, que controla o tempo mínimo em uso para considerar que a CPU
está realizando algum trabalho útil. Se o valor atual da métrica `OSCPUVirtualTimeMicroseconds` estiver abaixo desse valor,
assume-se que a sobrecarga da CPU é 0.

<div id="rejecting-queries">
  ## Rejeição de consultas
</div>

O comportamento de rejeição de consultas é controlado pelas configurações no nível da consulta `min_os_cpu_wait_time_ratio_to_throw` e
`max_os_cpu_wait_time_ratio_to_throw`. Se essas configurações estiverem definidas e `min_os_cpu_wait_time_ratio_to_throw` for menor
que `max_os_cpu_wait_time_ratio_to_throw`, a consulta será rejeitada e o erro `SERVER_OVERLOADED` será gerado
com certa probabilidade se a taxa de sobrecarga for pelo menos `min_os_cpu_wait_time_ratio_to_throw`. A probabilidade
é determinada por interpolação linear entre as taxas mínima e máxima. Por exemplo, se `min_os_cpu_wait_time_ratio_to_throw = 2`,
`max_os_cpu_wait_time_ratio_to_throw = 6` e `cpu_overload = 4`, a consulta será rejeitada com probabilidade de `0.5`.

<div id="dropping-connections">
  ## Encerrando conexões
</div>

O encerramento de conexões é controlado pelas configurações no nível do servidor `min_os_cpu_wait_time_ratio_to_drop_connection` e
`max_os_cpu_wait_time_ratio_to_drop_connection`. Essas configurações podem ser alteradas sem reiniciar o servidor. A lógica por trás
dessas configurações é semelhante à da rejeição de consultas. A única diferença, neste caso, é que, se o servidor estiver sobrecarregado,
a tentativa de conexão será rejeitada pelo próprio servidor.

<div id="resource-overload-warnings">
  ## Avisos de sobrecarga de recursos
</div>

O ClickHouse também registra avisos de sobrecarga de CPU e memória na tabela `system.warnings` quando o servidor fica sobrecarregado. Você pode
personalizar esses limites na configuração do servidor.

**Exemplo**

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