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

# настройки сеанса max_threads_*

> Настройки сеанса ClickHouse в автоматически созданной группе max_threads_*.

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
  }}>Тип</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>По умолчанию</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Изменяется без перезапуска
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Эти настройки доступны в [system.settings](/docs/ru/reference/system-tables/settings) и автоматически сгенерированы на основе [исходного кода](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)" />

Максимальное количество потоков обработки запроса, за исключением потоков, используемых для получения данных с удалённых серверов (см. параметр ['max\_distributed\_connections'](/docs/ru/reference/settings/session-settings/max-distributed#max_distributed_connections)).

Этот параметр применяется к потокам, которые параллельно выполняют одни и те же стадии конвейера обработки запроса.
Например, при чтении из таблицы, если можно параллельно задействовать как минимум число потоков, равное 'max\_threads', для вычисления выражений с функциями, фильтрации с помощью `WHERE` и предварительной агрегации для `GROUP BY`, то будут использованы 'max\_threads'.

Для запросов, которые быстро завершаются из-за LIMIT, можно задать меньшее значение 'max\_threads'.
Например, если нужное количество записей находится в каждом блоке и max\_threads = 8, то будут считаны 8 блоков, хотя достаточно было бы прочитать только один.
Чем меньше значение `max_threads`, тем меньше потребляется памяти.

По умолчанию настройка `max_threads` соответствует числу аппаратных потоков (количеству ядер CPU), доступных ClickHouse.
В особом случае для процессоров x86 с менее чем 32 ядрами CPU и SMT (например, Intel HyperThreading) ClickHouse по умолчанию использует количество логических ядер (= 2 x число физических ядер).

При отсутствии SMT это соответствует количеству ядер CPU.

Для пользователей ClickHouse Cloud значение по умолчанию отображается как `auto(N)`, где N соответствует размеру vCPU вашего сервиса, например 2vCPU/8GiB, 4vCPU/16GiB и т. д.
Список всех размеров сервиса см. на вкладке настроек в консоли Cloud.

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

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

Максимальное количество потоков, обрабатывающих индексы.

<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": "Новая настройка для ограничения числа потоков на основе объёма доступной свободной памяти"}]}]} />

Уменьшает `max_threads`, когда сервер испытывает нехватку памяти, чтобы не запускать сильно распараллеленные запросы, которые с высокой вероятностью достигнут лимита памяти.

Свободная память вычисляется как `max_server_memory_usage` сервера за вычетом объёма памяти, который в данный момент отслеживается глобальным трекером памяти. Если этой свободной памяти меньше, чем `max_threads`, умноженное на это значение, `max_threads` уменьшается до наибольшего N, такого что `N * value <= free_memory`, с минимумом `1`.

Установите `0`, чтобы отключить это ограничение.

Например, при значении по умолчанию 1 GiB и 32 GiB свободной памяти значение `max_threads` ограничивается 32; при 1 GiB свободной памяти оно снижается до 1.

Эта настройка применяется к параллелизму на стороне чтения (`SELECT`, `UNION`, `INTERSECT`/`EXCEPT` и часть `SELECT` в `INSERT ... SELECT`). Для стороны записи см. `max_insert_threads_min_free_memory_per_thread`.
