OOMD.CONF(5)

الاسم
oomd.conf، oomd.conf.d - ملفات تهيئة عامة لـ systemd-oomd

موجز

    /etc/systemd/oomd.conf
    /run/systemd/oomd.conf
    /usr/local/lib/systemd/oomd.conf
    /usr/lib/systemd/oomd.conf
    /etc/systemd/oomd.conf.d/*.conf
    /run/systemd/oomd.conf.d/*.conf
    /usr/local/lib/systemd/oomd.conf.d/*.conf
    /usr/lib/systemd/oomd.conf.d/*.conf

الوصف

تضبط هذه الملفات المعاملات المختلفة لقاتل نفاد الذاكرة (OOM) في فضاء المستخدم systemd(1)، systemd-oomd.service(8). راجع systemd.syntax(7) للحصول على وصف عام للصياغة.

أدلة الضبط والأسبقية

يُضبط التشكيل المبدئي أثناء التجميع، لذا لا يلزم التشكيل إلا عند الحاجة للانحراف عن تلك القيم المبدئية. يُحمل ملف التشكيل الرئيس من أحد الأدلة المدرجة حسب ترتيب الأولوية، ويُستخدم أول ملف يُعثر عليه فقط: /etc/systemd/، و /run/systemd/، و /usr/local/lib/systemd/ [1]، و /usr/lib/systemd/. تحتوي نسخة المورد من الملف على مدخلات مُعلقة تظهر القيم المبدئية كدليل للمدير. يمكن أيضًا إنشاء تجاوزات محلية عن طريق إنشاء ملفات تكميلية (drop-ins)، كما هو موضح أدناه. يمكن أيضًا تحرير ملف التشكيل الرئيس لهذا الغرض (أو نسخة في /etc/ إذا كانت مشحونة تحت /usr/)، ومع ذلك يوصى باستخدام الملفات التكميلية للتشكيل المحلي بدلاً من إجراء تعديلات على ملف التشكيل الرئيس.

بالإضافة إلى ملف الإعداد الرئيس، تُقرأ قصاصات الإعداد الإضافية من /usr/lib/systemd/*.conf.d/ و /usr/local/lib/systemd/*.conf.d/ و /etc/systemd/*.conf.d/. لهذه الإضافات أولوية أعلى وتتجاوز ملف الإعداد الرئيس. تُفرز الملفات في الأدلة الفرعية للإعداد *.conf.d/ حسب أسماء ملفاتها بترتيب معجمي، بغض النظر عن الدليل الفرعي الذي توجد فيه. عندما تحدد ملفات متعددة نفس الخيار، بالنسبة للخيارات التي تقبل قيمة واحدة فقط، فإن المدخلة في الملف الأخير في الترتيب هي التي تسود، وبالنسبة للخيارات التي تقبل قائمة من القيم، تُجمع المدخلات كما تظهر في الملفات المرتبة.

عندما تحتاج الحزم إلى تخصيص الضبط، يمكنها تثبيت ملفات تكميلية (drop-ins) تحت /usr/. تُحجز الملفات في /etc/ لمدير النظام المحلي، الذي قد يستخدم هذا المنطق لتخطي ملفات الضبط المثبتة من قبل حزم المورّد. يجب استخدام الملفات التكميلية لتخطي ملفات الحزم التكميلية، بما أن ملف الضبط الرئيس له أسبقية أدنى. ويُوصى ببدء جميع أسماء الملفات في تلك المجلدات الفرعية برقم من خانتين وواصلة، لتبسيط الترتيب. كما يحدد هذا مفهوم أولويات الملفات التكميلية للسماح لموردي أنظمة التشغيل بشحن ملفات تكميلية ضمن نطاق محدد أدنى من النطاق الذي يستخدمه المستخدمون. وهذا من شأنه أن يقلل من خطر تخطي ملفات الحزم التكميلية للملفات التكميلية التي حددها المستخدمون عرضًا. ويُوصى باستخدام النطاق 10-40 للملفات التكميلية في /usr/ والنطاق 60-90 للملفات التكميلية في /etc/ و /run/، للتأكد من أن الملفات التكميلية المحلية والعابرة تأخذ الأولوية على الملفات التكميلية التي يشحنها مورد نظام التشغيل.

لتعطيل ملف تشكيل مقدم من المورد، فإن الطريقة الموصى بها هي وضع وصلة رمزية إلى /dev/null في دليل التشكيل في /etc/، بنفس اسم ملف تشكيل المورد.

حدث ما قبل القتل

يدعم systemd-oomd إخطار المكونات الخارجية قبل قتل مجموعة تحكم. يُنجز ذلك بإرسال إشعار عبر varlink إلى جميع المقابس الموجودة في مجلد /run/systemd/oomd.prekill.hook/. يجب على كل مقبس تنفيذ واجهة io.systemd.oom.Prekill. يحتوي الإشعار على مسار مجموعة التحكم للسماح للخطاف بتحديد مجموعة التحكم التي تُقتل. يسمح هذا للمكونات الخارجية بأداء أي تنظيف أو تسجيل ضروري قبل إنهاء مجموعة التحكم. لا يُقصد من الخطاف أن يكون وسيلة لتجنب القتل، بل آلية إخطار. لاحظ أن هذا خيار مميز لأنه، حتى مع وجود مهلة زمنية، فهو متزامن ويؤخر القتل، لذا استخدمه بحذر. الآلية المفضلة عادة لمعالجة ضغط الذاكرة هي ما يصفه MEMORY_PRESSURE[2] وهي غير مميزة وغير متزامنة ولا تؤخر القتل.

خيارات القسم [OOM]

الخيارات التالية متاحة في القسم [OOM]:

SwapUsedLimit=
    يضبط الحد الأقصى لاستخدام الذاكرة والمبادلة على النظام قبل أن يتخذ systemd-oomd إجراءً. إذا كان كل من كسر الذاكرة المستخدمة وكسر المبادلة المستخدمة على النظام أكبر مما هو محدد هنا، سيتصرف systemd-oomd على مجموعات التحكم السليلة المؤهلة التي يزيد استخدامها للمبادلة عن 5% من إجمالي المبادلة، بدءًا من تلك ذات أعلى استخدام للمبادلة. تعتمد مجموعات التحكم التي تُراقب والإجراء الذي يُتخذ على ما ضبطته الوحدة لـ ManagedOOMSwap=. يأخذ قيمة محددة بالنسبة المئوية (عند إلحاقها بـ "%")، أو بالألف ("‰") أو بعشرة آلاف ("‱")، بين 0% و100%، شاملة. المبدئي هو 90%.

    أُضيف في الإصدار 247.

DefaultMemoryPressureLimit=
    يضبط الحد الأقصى لضغط الذاكرة على مجموعة تحكم الوحدة قبل أن يتخذ systemd-oomd إجراءً. يمكن لوحدة تجاوز هذه القيمة باستخدام ManagedOOMMemoryPressureLimit=. يمثل ضغط الذاكرة لهذه الخاصية كسر الوقت في نافذة مدتها 10 ثوانٍ تأخرت فيها جميع المهام في مجموعة التحكم. لكل مجموعة تحكم مراقبة، إذا تجاوز ضغط الذاكرة على تلك المجموعة الحد المضبوط لمدة أطول من المدة المضبوطة بواسطة DefaultMemoryPressureDurationSec=، سيتصرف systemd-oomd على مجموعات التحكم السليلة المؤهلة، بدءًا من تلك التي لديها أعلى نشاط استصلاح إلى أقل نشاط استصلاح. تعتمد مجموعات التحكم التي تُراقب والإجراء الذي يُتخذ على ما ضبطته الوحدة لـ ManagedOOMMemoryPressure=. يأخذ كسرًا محددًا بنفس طريقة SwapUsedLimit= أعلاه. المبدئي هو 60%.

    أُضيف في الإصدار 247.

DefaultMemoryPressureDurationSec=
    يضبط مقدار الوقت الذي تحتاج مجموعة تحكم الوحدة لتجاوز حدود ضغط الذاكرة فيه قبل أن يتخذ systemd-oomd إجراءً. يمكن لوحدة تجاوز هذه القيمة باستخدام ManagedOOMMemoryPressureDurationSec=. تُعرف حدود ضغط الذاكرة بواسطة DefaultMemoryPressureLimit= و ManagedOOMMemoryPressureLimit=. يجب ضبطها على 0، أو على الأقل ثانية واحدة. المبدئي هو 30 ثانية عند عدم الضبط أو 0.

    أُضيف في الإصدار 248.

PrekillHookTimeoutSec=
    يضبط مقدار الوقت الذي سينتظره systemd-oomd لخطافات ما قبل القتل لإكمالها، قبل المتابعة مع إنهاء مجموعة التحكم. تعمل خطافات ما قبل القتل بوضع مقبس varlink في مجلد /run/systemd/oomd.prekill.hook/. يجب على كل مقبس تنفيذ واجهة لكي يعمل الإشعار. يرسل systemd-oomd إشعارًا قبل قتل مجموعة تحكم لكل مقبس مكتشف. المهلة الزمنية مقصودة أن تكون عامة وليست لكل خطاف. إذا عادت جميع الخطافات مبكرًا، يُنفذ القتل في أقرب وقت ممكن. يجب أن تكون المهلة الزمنية على الأقل 1 ثانية. المبدئي هو 0، مما يعني أن systemd-oomd لن ينتظر ولن تُرسل أي إشعارات.

    أُضيف في الإصدار 260.

انظر أيضًا

systemd(1)، systemd.resource-control(5)، systemd-oomd.service(8)، oomctl(1)

ملاحظات

1.  💣💥🧨💥💥💣 يرجى ملاحظة أن ملفات الضبط تلك يجب أن تكون متوفرة في جميع الأوقات. إذا كان /usr/local/ قسماً منفصلاً، فقد لا يكون متوفراً أثناء بدء التشغيل المبكر، ويجب عدم استخدامه للضبط.

2.  MEMORY_PRESSURE
    https://systemd.io/MEMORY_PRESSURE/

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.