.\" -*- coding: UTF-8 -*- .\" Copyright 1994-1995, Daniel Quinlan .\" Copyright 2002-2017, Michael Kerrisk .\" Copyright, Andries E. Brouwer .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-3.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH proc_sys_vm 5 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم /proc/sys/vm/ \- النظام الفرعي للذاكرة الافتراضية .SH الوصف .TP \fI/proc/sys/vm/\fP يحتوي هذا الدليل على ملفات لضبط إدارة الذاكرة، وإدارة المخازن المؤقتة والخبيئة. .TP \fI/proc/sys/vm/admin_reserve_kbytes\fP (منذ لينكس 3.10) .\" commit 4eeab4f5580d11bffedc697684b91b0bca0d5009 يحدد هذا الملف مقدار الذاكرة الحرة (بـ KiB) في النظام التي ينبغي حجزها للمستخدمين الذين يمتلكون القدرة \fBCAP_SYS_ADMIN\fP. .IP القيمة المبدئية في هذا الملف هي الحد الأدنى من [3% من الصفحات الحرة، 8MiB] معبرًا عنها بـ KiB. تهدف القيمة المبدئية إلى توفير مساحة كافية للمستخدم الفائق لتسجيل الدخول وقتل عملية، إذا لزم الأمر، تحت وضع التجاوز المبدئي \&'التخمين' (أي 0 في \fI/proc/sys/vm/overcommit_memory\fP). .IP الأنظمة التي تعمل في وضع "تجاوز أبدًا" (أي 2 في \fI/proc/sys/vm/overcommit_memory\fP) ينبغي أن تزيد القيمة في هذا الملف لمراعاة الحجم الكامل للذاكرة الافتراضية للبرامج المستخدمة للاسترداد (مثل \fBlogin\fP(1) و\fBssh\fP(1) و\fBtop\fP(1)). وإلا، قد لا يتمكن المستخدم الفائق من تسجيل الدخول لاسترداد النظام. على سبيل المثال، على x86\-64 قيمة مناسبة هي 131072 (128MiB محجوزة). .IP تغيير القيمة في هذا الملف يصبح ساريًا كلما طلب تطبيق ما ذاكرة. .TP \fI/proc/sys/vm/compact_memory\fP (منذ لينكس 2.6.35) عند كتابة 1 إلى هذا الملف، يتم ضغط جميع المناطق بحيث تصبح الذاكرة الحرة متاحة في كتل متجاورة حيثما أمكن. يمكن رؤية تأثير هذا الإجراء بفحص \fI/proc/buddyinfo\fP. .IP موجود فقط إذا تم تكوين النواة مع \fBCONFIG_COMPACTION\fP. .TP \fI/proc/sys/vm/drop_caches\fP (منذ لينكس 2.6.16) تؤدي الكتابة إلى هذا الملف إلى قيام النواة بإسقاط الخبيئات النظيفة، ومدخلات الدليل، وعُقد الفهرس من الذاكرة، مما يجعل تلك الذاكرة حرة. يمكن أن يكون هذا مفيدًا لاختبار إدارة الذاكرة وإجراء معايير أداء نظام الملفات قابلة للتكرار. نظرًا لأن الكتابة إلى هذا الملف تتسبب في فقدان فوائد التخزين المؤقت، فقد يؤدي ذلك إلى تدهور أداء النظام العام. .IP لتحرير خبيئة الصفحات، استخدم: .IP .in +4n .EX echo 1 > /proc/sys/vm/drop_caches .EE .in .IP لتحرير مدخلات الدليل وعُقد الفهرس، استخدم: .IP .in +4n .EX echo 2 > /proc/sys/vm/drop_caches .EE .in .IP لتحرير خبيئة الصفحات، ومدخلات الدليل، وعُقد الفهرس، استخدم: .IP .in +4n .EX echo 3 > /proc/sys/vm/drop_caches .EE .in .IP نظرًا لأن الكتابة إلى هذا الملف هي عملية غير مدمرة والأشياء المتسخة غير قابلة للتحرير، ينبغي على المستخدم تشغيل \fBsync\fP(1) أولاً. .TP \fI/proc/sys/vm/hugetlb_shm_group\fP (منذ لينكس 2.6.7) يحتوي هذا الملف القابل للكتابة على معرف مجموعة يُسمح له بتخصيص ذاكرة باستخدام الصفحات الضخمة. إذا كانت العملية تمتلك معرف مجموعة نظام ملفات أو أي معرف مجموعة تكميلي يطابق معرف المجموعة هذا، فيمكنها إجراء تخصيصات الصفحات الضخمة دون امتلاك القدرة \fBCAP_IPC_LOCK\fP؛ انظر \fBmemfd_create\fP(2) و\fBmmap\fP(2) و\fBshmget\fP(2). .TP \fI/proc/sys/vm/legacy_va_layout\fP (منذ لينكس 2.6.9) إذا كانت القيمة غير صفرية، فإن هذا يعطل التخطيط الجديد لتعيين الذاكرة 32\-بت؛ ستستخدم النواة التخطيط القديم (2.4) لجميع العمليات. .TP \fI/proc/sys/vm/memory_failure_early_kill\fP (منذ لينكس 2.6.32) يتحكم في كيفية قتل العمليات عند اكتشاف خطأ ذاكرة غير مصحح (عادة خطأ ثنائي البت في وحدة ذاكرة) لا يمكن للنواة معالجته في الخلفية بواسطة العتاد. في بعض الحالات (مثل الصفحة التي لا تزال تمتلك نسخة صالحة على القرص)، ستتعامل النواة مع الفشل بشفافية دون التأثير على أي تطبيقات. ولكن إذا لم تكن هناك نسخة أخرى محدثة من البيانات، فستقتل العمليات لمنع انتشار أي تلف في البيانات. .IP يحتوي الملف على إحدى القيم التالية: .RS .TP \fB1\fP يقتل جميع العمليات التي تمتلك الصفحة التالفة وغير القابلة لإعادة التحميل بمجرد اكتشاف التلف. لاحظ أن هذا غير مدعوم لعدد قليل من أنواع الصفحات، مثل البيانات المخصصة داخليًا من النواة أو خبيئة المبادلة، ولكنه يعمل لغالبية صفحات المستخدم. .TP \fB0\fP يفصل الصفحة التالفة من جميع العمليات ويقتل عملية فقط إذا حاولت الوصول إلى الصفحة. .RE .IP يتم القتل باستخدام إشارة \fBSIGBUS\fP مع تعيين \fIsi_code\fP إلى \fBBUS_MCEERR_AO\fP. يمكن للعمليات معالجة هذا إذا أرادت؛ انظر \fBsigaction\fP(2) لمزيد من التفاصيل. .IP هذه الميزة نشطة فقط على البنى/المنصات التي تحتوي على معالجة متقدمة لفحص الآلة وتعتمد على قدرات العتاد. .IP يمكن للتطبيقات تجاوز إعداد \fImemory_failure_early_kill\fP بشكل فردي باستخدام عملية \fBprctl\fP(2) \fBPR_MCE_KILL\fP. .IP موجود فقط إذا تم تكوين النواة مع \fBCONFIG_MEMORY_FAILURE\fP. .TP \fI/proc/sys/vm/memory_failure_recovery\fP (منذ لينكس 2.6.32) تمكين استرداد فشل الذاكرة (عندما تدعمه المنصة). .RS .TP \fB1\fP محاولة الاسترداد. .TP \fB0\fP الذعر دائمًا عند فشل الذاكرة. .RE .IP موجود فقط إذا تم تكوين النواة مع \fBCONFIG_MEMORY_FAILURE\fP. .TP \fI/proc/sys/vm/oom_dump_tasks\fP (منذ لينكس 2.6.25) يفعّل إنتاج تفريغ شامل لمهام النظام (باستثناء خيوط النواة) عندما تقوم النواة بقتل OOM. يتضمن التفريغ المعلومات التالية لكل مهمة (خيط، عملية): معرف الخيط، معرف المستخدم الحقيقي، معرف مجموعة الخيوط (معرف العملية)، حجم الذاكرة الافتراضية، حجم المجموعة المقيمة، وحدة المعالجة المركزية التي تم جدولة المهمة عليها، درجة oom_adj (انظر وصف \fI/proc/\fPpid\fI/oom_adj\fP)، واسم الأمر. هذا مفيد لتحديد سبب استدعاء قاتل OOM وتحديد المهمة المارقة التي تسببت فيه. .IP إذا احتوى هذا على القيمة صفر، يتم كبت هذه المعلومات. على الأنظمة الكبيرة جدًا التي تحتوي على آلاف المهام، قد لا يكون من المجدي تفريغ معلومات حالة الذاكرة لكل منها. لا ينبغي إجبار هذه الأنظمة على تحمل عقوبة أداء في حالات OOM عندما لا تكون المعلومات مرغوبًا فيها. .IP إذا عُين هذا إلى قيمة غير صفرية، تُعرض هذه المعلومات كلما قام قاتل OOM بقتل مهمة تستهلك الذاكرة بالفعل. .IP القيمة المبدئية هي 0. .TP \fI/proc/sys/vm/oom_kill_allocating_task\fP (منذ لينكس 2.6.24) هذا يفعّل أو يعطّل قتل المهمة المسببة لـ OOM في حالات نفاد الذاكرة. .IP إذا عُين هذا إلى صفر، سيقوم قاتل OOM بمسح قائمة المهام بأكملها واختيار مهمة بناءً على الاستدلال لقتلها. هذا يختار عادةً مهمة مارقة تستهلك الذاكرة وتحرر كمية كبيرة من الذاكرة عند قتلها. .IP إذا عُين هذا إلى قيمة غير صفرية، يقوم قاتل OOM ببساطة بقتل المهمة التي تسببت في حالة نفاد الذاكرة. هذا يتجنب مسحًا محتملاً مكلفًا لقائمة المهام. .IP إذا كان \fI/proc/sys/vm/panic_on_oom\fP غير صفري، فإنه يأخذ الأسبقية على أي قيمة تُستخدم في \fI/proc/sys/vm/oom_kill_allocating_task\fP. .IP القيمة المبدئية هي 0. .TP \fI/proc/sys/vm/overcommit_kbytes\fP (منذ لينكس 3.14) .\" commit 49f0ce5f92321cdcf741e35f385669a421013cb7 هذا الملف القابل للكتابة يوفر بديلاً لـ \fI/proc/sys/vm/overcommit_ratio\fP للتحكم في \fICommitLimit\fP عندما يكون \fI/proc/sys/vm/overcommit_memory\fP بالقيمة 2. يسمح بتحديد مقدار الإفراط في الالتزام بالذاكرة كقيمة مطلقة (بالكيلوبايت)، بدلاً من النسبة المئوية، كما هو الحال مع \fIovercommit_ratio\fP. هذا يسمح بالتحكم الدقيق في \fICommitLimit\fP على الأنظمة ذات أحجام الذاكرة الكبيرة جدًا. .IP يمكن لواحد فقط من \fIovercommit_kbytes\fP أو \fIovercommit_ratio\fP أن يكون له تأثير: إذا كان \fIovercommit_kbytes\fP له قيمة غير صفرية، فإنه يُستخدم لحساب \fICommitLimit\fP، وإلا يُستخدم \fIovercommit_ratio\fP. كتابة قيمة لأي من هذين الملفين يؤدي إلى تعيين القيمة في الملف الآخر إلى صفر. .TP \fI/proc/sys/vm/overcommit_memory\fP يحتوي هذا الملف على وضع محاسبة الذاكرة الافتراضية للنواة. القيم هي: .RS .IP 0: الإفراط في الالتزام الاستدلالي (هذا هو المبدئي) .br 1: الإفراط في الالتزام دائمًا، لا تفحص أبدًا .br 2: الفحص دائمًا، لا تفرط في الالتزام أبدًا .RE .IP في الوضع 0، لا يتم فحص استدعاءات \fBmmap\fP(2) مع \fBMAP_NORESERVE\fP، ويكون الفحص المبدئي ضعيفًا جدًا، مما يؤدي إلى خطر تعرض عملية للقتل بواسطة OOM. .IP في الوضع 1، يتظاهر النواة بوجود ذاكرة كافية دائمًا، حتى تنفد الذاكرة فعليًا. أحد حالات الاستخدام لهذا الوضع هي تطبيقات الحوسبة العلمية التي تستخدم مصفوفات كبيرة متناثرة. قبل لينكس 2.6.0، أي قيمة غير صفرية تعني الوضع 1. .IP في الوضع 2 (متاح منذ لينكس 2.6)، يتم حساب إجمالي مساحة العنوان الافتراضية التي يمكن تخصيصها (\fICommitLimit\fP في \fI/proc/meminfo\fP) كالتالي .IP .in +4n .EX CommitLimit = (total_RAM \- total_huge_TLB) * overcommit_ratio / 100 + total_swap .EE .in .IP حيث: .RS .IP \[bu] 3 \fItotal_RAM\fP هو إجمالي كمية الذاكرة العشوائية في النظام؛ .IP \[bu] \fItotal_huge_TLB\fP هو كمية الذاكرة المخصصة للصفحات الضخمة؛ .IP \[bu] \fIovercommit_ratio\fP هو القيمة في \fI/proc/sys/vm/overcommit_ratio\fP؛ و .IP \[bu] \fItotal_swap\fP هو كمية مساحة المبادلة. .RE .IP على سبيل المثال، في نظام بذاكرة عشوائية فعلية 16 جيجابايت، ومبادلة 16 جيجابايت، ولا مساحة مخصصة للصفحات الضخمة، و \fIovercommit_ratio\fP بقيمة 50، تنتج هذه الصيغة \fICommitLimit\fP بقيمة 24 جيجابايت. .IP منذ لينكس 3.14، إذا كانت القيمة في \fI/proc/sys/vm/overcommit_kbytes\fP غير صفرية، فإن \fICommitLimit\fP يُحسب بدلاً من ذلك كالتالي: .IP .in +4n .EX CommitLimit = overcommit_kbytes + total_swap .EE .in .IP انظر أيضًا وصف \fI/proc/sys/vm/admin_reserve_kbytes\fP و \fI/proc/sys/vm/user_reserve_kbytes\fP. .TP \fI/proc/sys/vm/overcommit_ratio\fP (منذ لينكس 2.6.0) يحدد هذا الملف القابل للكتابة نسبة مئوية يمكن بها الإفراط في التزام الذاكرة. القيمة المبدئية في الملف هي 50. انظر وصف \fI/proc/sys/vm/overcommit_memory\fP. .TP \fI/proc/sys/vm/panic_on_oom\fP (منذ لينكس 2.6.18) يُمكّن أو يُعطّل ذعر النواة في حالة نفاد الذاكرة. .IP إذا عُين هذا الملف إلى القيمة 0، فإن قاتل OOM للنواة سيقتل بعض العمليات المارقة. عادةً، يكون قاتل OOM قادرًا على قتل عملية مارقة وسيبقى النظام على قيد الحياة. .IP إذا عُين هذا الملف إلى القيمة 1، فإن النواة تصاب بالذعر عادةً عند حدوث نفاد الذاكرة. ومع ذلك، إذا حددت عملية التخصيصات لعقد معينة باستخدام سياسات الذاكرة (\fBmbind\fP(2) \fBMPOL_BIND\fP) أو مجموعات المعالجات (\fBcpuset\fP(7)) وتلك العقد تصل إلى حالة استنفاد الذاكرة، فقد تُقتل عملية واحدة بواسطة قاتل OOM. لا يحدث ذعر في هذه الحالة: لأن ذاكرة العقد الأخرى قد تكون حرة، وهذا يعني أن النظام ككل قد لا يكون قد وصل إلى حالة نفاد الذاكرة بعد. .IP إذا عُين هذا الملف إلى القيمة 2، فإن النواة تصاب بالذعر دائمًا عند حدوث حالة نفاد الذاكرة. .IP القيمة المبدئية هي 0. 1 و 2 مخصصتان للتبديل الاحتياطي للتجميع. اختر إحداهما وفقًا لسياسة التبديل الاحتياطي الخاصة بك. .TP \fI/proc/sys/vm/swappiness\fP تتحكم القيمة في هذا الملف في مدى عدوانية النواة في مبادلة صفحات الذاكرة. القيم الأعلى تزيد العدوانية، والقيم الأقل تقللها. القيمة المبدئية هي 60. .TP \fI/proc/sys/vm/user_reserve_kbytes\fP (منذ لينكس 3.10) .\" commit c9b1d0981fcce3d9976d7b7a56e4e0503bc610dd يحدد كمية من الذاكرة (بـ KiB) لاحتياطها لعمليات المستخدم. هذا يهدف إلى منع المستخدم من بدء عملية واحدة تلتهم الذاكرة، بحيث لا يمكنه التعافي (قتل العملية الملتهمة). القيمة في هذا الملف لها تأثير فقط عندما يعُين \fI/proc/sys/vm/overcommit_memory\fP إلى 2 (وضع "عدم الإفراط في الالتزام أبدًا"). في هذه الحالة، يحتفظ النظام بكمية من الذاكرة هي الحد الأدنى لـ [3% من حجم العملية الحالي، \fIuser_reserve_kbytes\fP]. .IP القيمة المبدئية في هذا الملف هي الحد الأدنى لـ [3% من الصفحات الحرة، 128 ميجابايت] معبرًا عنها بـ KiB. .IP إذا عُينت القيمة في هذا الملف إلى الصفر، فسيُسمح للمستخدم بتخصيص كل الذاكرة الحرة بعملية واحدة (مطروحًا منها الكمية المحتجزة بواسطة \fI/proc/sys/vm/admin_reserve_kbytes\fP). أي محاولات لاحقة لتنفيذ أمر ستؤدي إلى "fork: Cannot allocate memory". .IP تغيير القيمة في هذا الملف يصبح ساريًا كلما طلب تطبيق ما ذاكرة. .TP \fI/proc/sys/vm/unprivileged_userfaultfd\fP (منذ لينكس 5.2) .\" cefdca0a86be517bc390fc4541e3674b8e7803b0 يكشف هذا الملف (القابل للكتابة) عن علم يتحكم في ما إذا كان يُسمح للعمليات غير المميزة باستخدام \fBuserfaultfd\fP(2). إذا كانت قيمة هذا الملف 1، فقد تستخدم العمليات غير المميزة \fBuserfaultfd\fP(2). إذا كانت قيمة هذا الملف 0، فعندئذٍ فقط العمليات التي تمتلك قدرة \fBCAP_SYS_PTRACE\fP قد تستخدم \fBuserfaultfd\fP(2). القيمة المبدئية في هذا الملف هي 1. .SH "انظر أيضًا" \fBproc\fP(5)، ‏\fBproc_sys\fP(5) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .