> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de sessão max_threads_*

> Configurações de sessão do ClickHouse no grupo max_threads_* gerado.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Essas configurações estão disponíveis em [system.settings](/docs/pt-BR/reference/system-tables/settings) e são geradas automaticamente a partir do [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="max_threads">
  ## max\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="auto(N)" />

O número máximo de threads de processamento de consultas, excluindo as threads usadas para recuperar dados de servidores remotos (consulte o parâmetro ['max\_distributed\_connections'](/docs/pt-BR/reference/settings/session-settings/max-distributed#max_distributed_connections)).

Este parâmetro se aplica a threads que executam os mesmos estágios do pipeline de processamento de consultas em paralelo.
Por exemplo, ao ler de uma tabela, se for possível avaliar expressões com funções, filtrar com `WHERE` e pré-agregar para `GROUP BY` em paralelo usando pelo menos o número de threads definido em 'max\_threads', então 'max\_threads' será usado.

Para consultas concluídas rapidamente por causa de um LIMIT, você pode definir um valor menor para 'max\_threads'.
Por exemplo, se o número necessário de entradas estiver localizado em cada bloco e max\_threads = 8, então 8 blocos serão recuperados, embora bastasse ler apenas um.
Quanto menor o valor de `max_threads`, menor o consumo de memória.

A configuração `max_threads`, por padrão, corresponde ao número de threads de hardware (número de CPU cores) disponíveis para o ClickHouse.
Como caso especial, em processadores x86 com menos de 32 CPU cores e SMT (por exemplo, Intel HyperThreading), o ClickHouse usa por padrão o número de núcleos lógicos (= 2 x número de núcleos físicos).

Sem SMT (por exemplo, Intel HyperThreading), isso corresponde ao número de CPU cores.

Para usuários do ClickHouse Cloud, o valor padrão será exibido como `auto(N)`, em que N corresponde ao tamanho de vCPU do seu serviço, por exemplo, 2vCPU/8GiB, 4vCPU/16GiB etc.
Consulte a tab de configurações no console do Cloud para ver uma lista de todos os tamanhos de serviço.

<div id="max_threads_for_indexes">
  ## max\_threads\_for\_indexes
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

O número máximo de threads para processar índices.

<div id="max_threads_min_free_memory_per_thread">
  ## max\_threads\_min\_free\_memory\_per\_thread
</div>

<SettingsInfoBlock type="UInt64" default_value="1073741824" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1073741824"},{"label": "Nova configuração para limitar o número de threads com base na memória livre disponível"}]}]} />

Reduz `max_threads` quando o servidor está sob pressão de memória, para evitar iniciar consultas com alto paralelismo que provavelmente atingiriam o limite de memória.

A memória livre é calculada como `max_server_memory_usage` do servidor menos a memória atualmente rastreada pelo memory tracker global. Se essa memória livre for menor que `max_threads` multiplicado por esse valor, `max_threads` será reduzido ao maior N tal que `N * value <= free_memory`, com mínimo de `1`.

Defina como `0` para desabilitar esse limite.

Por exemplo, com o valor padrão de 1 GiB e 32 GiB de memória livre, `max_threads` fica limitado a 32; com 1 GiB de memória livre, ele é reduzido para 1.

Essa configuração se aplica ao paralelismo no lado da leitura (`SELECT`, `UNION`, `INTERSECT`/`EXCEPT` e o lado `SELECT` de `INSERT ... SELECT`). Para o lado da escrita, consulte `max_insert_threads_min_free_memory_per_thread`.
