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

# weight_lowering_* 세션 설정

> 자동 생성된 weight_lowering_* 그룹에 속한 ClickHouse 세션 설정입니다.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["버전", "기본값", "설명"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        버전 이력
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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/ko/reference/system-tables/settings)에서 확인할 수 있으며, [소스 코드](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)를 기반으로 자동 생성됩니다.

<h2 id="weight_lowering_age_seconds">
  weight\_lowering\_age\_seconds
</h2>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "0"},{"label": "새 쿼리 설정: `fair` 워크로드 스케줄러에서 쿼리의 가중치를 낮추는 기준이 되는 실제 경과 시간(wall-clock) 임계값입니다."}]}]} />

`fair` 워크로드 스케줄러에서 쿼리의 실행 시간(wall-clock 기준)이 이 설정에 지정된 초를 넘으면, 해당 쿼리의 가중치가 `weight_lowering_factor`만큼 낮아집니다. `0`(또는 음수 값)으로 설정하면 경과 시간 임계값이 적용되지 않습니다.

<h2 id="weight_lowering_cpu_seconds">
  weight\_lowering\_cpu\_seconds
</h2>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "0"},{"label": "새로운 쿼리 설정: `fair` 워크로드 스케줄러에서 쿼리의 가중치를 낮추는 기준이 되는 누적 CPU-초 임계값입니다."}]}]} />

`fair` 워크로드 스케줄러에서 쿼리가 이 값만큼의 CPU-초를 누적하면 해당 쿼리의 가중치가 `weight_lowering_factor`만큼 낮아집니다. CPU 리소스에 적용됩니다. `0`(또는 음수 값)으로 지정하면 CPU 임계값이 비활성화됩니다. 누적 CPU는 스케줄러가 부여한 서비스량으로, CPU가 실제로 사용되는 시점이 아니라 요청이 승인되는 시점에 계산됩니다. 따라서 활성 슬롯당 최대 1 퀀텀(`cpu_slot_quantum_ns`)만큼 실제 사용량을 앞설 수 있습니다. 이 설정은 CPU 슬롯 선점(`cpu_slot_preemption = 1`, 기본값)이 활성화된 경우에만 의미가 있습니다. 선점이 비활성화되면 CPU 슬롯에는 실제 CPU 시간 대신 슬롯당 고정 비용이 부과되므로, 이 임계값은 다른 `fair` CPU 설정과 마찬가지로 실제 CPU 사용량을 더 이상 반영하지 못합니다.

<h2 id="weight_lowering_factor">
  weight\_lowering\_factor
</h2>

<SettingsInfoBlock type="Double" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "1"},{"label": "새로운 쿼리 설정: `fair` 워크로드 스케줄러에서 쿼리가 가중치 감소 임계값을 넘으면 해당 쿼리의 가중치에 적용되는 계수입니다."}]}]} />

`fair` 워크로드 스케줄러에서 쿼리가 아래의 `weight_lowering_*` 임계값 중 하나라도 넘으면 해당 쿼리의 유효 가중치에 이 계수가 한 번 곱해집니다. (0, 1) 범위의 값은 가중치를 낮추므로, 더 짧거나 더 최근에 시작된 쿼리가 스케줄링에서 우선하게 됩니다. 임계값들은 누적되지 않으며, 가장 먼저 도달한 임계값에서 감소분 전체가 적용됩니다. `1.0`으로 설정하면 가중치 감소가 비활성화됩니다. 값은 `[0, 1]` 범위로 제한되므로 이 계수는 쿼리의 가중치를 낮출 수만 있으며 높일 수는 없습니다.

<h2 id="weight_lowering_io_bytes">
  weight\_lowering\_io\_bytes
</h2>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "0"},{"label": "새 쿼리 설정: `fair` 워크로드 스케줄러에서 쿼리의 가중치(weight)를 낮추는 기준이 되는 누적 IO 바이트 임계값입니다."}]}]} />

`fair` 워크로드 스케줄러(workload scheduler)에서 쿼리의 누적 IO가 이 바이트 수에 도달하면 해당 쿼리의 가중치(weight)가 `weight_lowering_factor`만큼 낮아집니다. IO 리소스에 적용됩니다. `0`(또는 음수 값)으로 설정하면 IO 임계값이 비활성화됩니다.
