> ## 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/ar/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/ar/reference/settings/session-settings/max-distributed#max_distributed_connections)).

تنطبق هذه المعلَمة على الخيوط التي تنفّذ المراحل نفسها من مسار معالجة الاستعلام بالتوازي.
على سبيل المثال، عند القراءة من جدول، إذا كان من الممكن تقييم التعبيرات التي تتضمن دوال، والتصفية باستخدام `WHERE`، وإجراء التجميع المسبق من أجل `GROUP BY` بالتوازي باستخدام عدد لا يقل عن 'max\_threads' من الخيوط، فسيتم استخدام 'max\_threads'.

بالنسبة إلى الاستعلامات التي تكتمل بسرعة بسبب LIMIT، يمكنك تعيين قيمة أقل لـ 'max\_threads'.
على سبيل المثال، إذا كان العدد المطلوب من الإدخالات موجودًا في كل كتلة وكانت max\_threads = 8، فسيتم استرجاع 8 كتل، رغم أن قراءة كتلة واحدة فقط كانت ستكفي.
كلما صغرت قيمة `max_threads`، انخفض استهلاك الذاكرة.

تتوافق قيمة الإعداد `max_threads` افتراضيًا مع عدد خيوط العتاد (عدد أنوية CPU) المتاحة لـ ClickHouse.
وكحالة خاصة، بالنسبة إلى معالجات x86 التي تحتوي على أقل من 32 نواة CPU وتدعم SMT (مثل Intel HyperThreading)، يستخدم ClickHouse عدد الأنوية المنطقية (= 2 × عدد الأنوية الفعلية) افتراضيًا.

من دون SMT (مثل Intel HyperThreading)، يتوافق ذلك مع عدد أنوية CPU.

بالنسبة إلى مستخدمي ClickHouse Cloud، ستظهر القيمة الافتراضية على شكل `auto(N)`، حيث يطابق N حجم vCPU الخاص بخدمتك، مثل 2vCPU/8GiB و4vCPU/16GiB وما إلى ذلك.
راجع علامة التبويب Settings في وحدة تحكم 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`.
