Skip to main content
هذه الإعدادات متاحة في system.settings، ويتم توليدها تلقائيًا من الشفرة المصدرية.

max_threads

الحد الأقصى لعدد خيوط معالجة الاستعلام، باستثناء الخيوط المخصّصة لاسترجاع البيانات من الخوادم البعيدة (راجع المعلَمة ‘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 للحصول على قائمة بجميع أحجام الخدمات.

max_threads_for_indexes

الحد الأقصى لعدد خيوط التنفيذ التي تعالج الفهارس.

max_threads_min_free_memory_per_thread

يُخفِّض 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.
آخر تعديل في ٢٣ يوليو ٢٠٢٦