Skip to main content
تضبط هذه الإعدادات خادم ClickHouse، وهي مُولَّدة تلقائيًا من الشفرة المصدرية لـ ClickHouse.

memory_worker_correct_memory_tracker

ما إذا كان عامل الذاكرة في الخلفية سيصحّح متعقّب الذاكرة الداخلي استنادًا إلى معلومات من مصادر خارجية مثل jemalloc وcgroups

memory_worker_decay_adjustment_period_ms

المدة، بالميلي ثانية، التي يجب أن تستمر خلالها حالة ضغط الذاكرة قبل إجراء ضبط ديناميكي للقيمة dirty_decay_ms في jemalloc. عندما يظل استخدام الذاكرة أعلى من عتبة التطهير طوال هذه المدة، يُعطَّل تلقائيًا اضمحلال الصفحات المتسخة (dirty_decay_ms=0) لاسترداد الذاكرة بشكل مكثف. وعندما يظل الاستخدام دون العتبة طوال هذه المدة، يُستعاد سلوك الاضمحلال الافتراضي. اضبطها على 0 لتعطيل الضبط الديناميكي واستخدام إعدادات الاضمحلال الافتراضية في jemalloc.

memory_worker_dynamic_hard_limit

ما إذا كان عامل الذاكرة في الخلفية يعيد دوريًا حساب الحدّ الصارم لذاكرة الخادم أثناء وقت التشغيل وفقًا للصيغة (resident memory + system available memory) * max_server_memory_usage_to_ram_ratio، بحيث يترك الخادم هامشًا احتياطيًا للعمليات الأخرى التي تعمل على المضيف نفسه. عند تعطيله، يقتصر max_server_memory_usage_to_ram_ratio على تقييد الحدّ الصارم للذاكرة بصورة ثابتة فقط، عند بدء التشغيل وعند إعادة تحميل الإعدادات، كما في الإصدارات السابقة. لا يكون له أي تأثير عندما تكون قيمة max_server_memory_usage_to_ram_ratio هي 0.

memory_worker_period_ms

فترة tick الخاصة بعامل الذاكرة في الخلفية، والذي يصحّح استهلاك الذاكرة الذي يسجّله متعقّب الذاكرة وينظّف الصفحات غير المستخدمة عند ارتفاع استهلاك الذاكرة. إذا ضُبطت على 0، فستُستخدم القيمة الافتراضية وفقًا لمصدر استهلاك الذاكرة

memory_worker_purge_dirty_pages_threshold_ratio

نسبة العتبة لصفحات jemalloc المتسخة مقارنةً بالذاكرة المتاحة لخادم ClickHouse. عندما يتجاوز حجم الصفحات المتسخة هذه النسبة، يقوم عامل الذاكرة في الخلفية بتطهير الصفحات المتسخة قسرًا. إذا ضُبطت على 0، فسيتم تعطيل التطهير القسري المستند إلى نسبة الصفحات المتسخة.

memory_worker_purge_total_memory_threshold_ratio

نسبة العتبة لتطهير jemalloc مقارنةً بالذاكرة المتاحة لخادم ClickHouse. عندما يتجاوز إجمالي استخدام الذاكرة هذه النسبة، يفرض عامل الذاكرة في الخلفية تطهير الصفحات المتسخة. وإذا ضُبطت على 0، يتم تعطيل التطهير القسري المستند إلى إجمالي الذاكرة.

memory_worker_rss_speculative_reserve_ratio

عند كل tick لـ MemoryWorker، احجز مقدارًا إضافيًا قدره ratio * min(resident - previous_resident, resident - tracked) فوق قيمة RSS المرصودة، على افتراض أن الـ tick التالية قد تزداد بالمقدار نفسه الذي زادت به السابقة (resident - previous_resident هو مقدار زيادة RSS خلال الـ tick السابقة). ويُحدَّد هذا النمو بالقيمة resident - tracked، وهي الجزء من RSS غير المرئي لـ متعقّب الذاكرة العام، لأن النمو الذي جرى تتبعه بالفعل تتعامل معه آلية التحقق العادية من الحد الصارم. ويُطبَّق هذا الحجز على عدّاد rss الذي ترجع إليه آلية التحقق العامة من الحد الصارم عبر MemoryTracker::allocImpl، لذا عندما تتجاوز القيمة المستقرأة max_server_memory_usage، فإن عمليات التخصيص اللاحقة تُطلق MEMORY_LIMIT_EXCEEDED قبل أن يتدخل OOM-killer في النواة. تؤدي القيمة 0 إلى تعطيل هذا الاستقراء (مع الرجوع إلى rss = resident)؛ أما القيمة الافتراضية 1 فتحجز دلتا نمو كاملة كهامش سعة إضافي للفاصل الزمني التالي. وعند استخدام أدوات التنقية (ASan وUBSan وMSan وTSan)، تكون القيمة الافتراضية 0، لأن الفجوة resident - tracked يغلب عليها الحمل الإضافي الناتج عن ذاكرة الظل / بيئة التشغيل الخاصة بأدوات التنقية، لا تأخر تسجيل الحسابات في المتتبّع.

memory_worker_use_cgroup

استخدم معلومات استخدام الذاكرة الحالية في cgroup لتصحيح تتبع الذاكرة.
آخر تعديل في ٢٣ يوليو ٢٠٢٦