CHMEM(8)

الاسم
chmem - اضبط الذاكرة

موجز

chmem [-h] [-V] [-v] [-c|-e|-d|-g] [حجم|نطاق|-b نطاق_كتلي] [-z منطقة] [-m خارطة_ذاكرة_على_الذاكرة]

الوصف

يضبط الأمر chmem حجماً معيناً أو نطاقاً من الذاكرة لتكون متصلة أو غير متصلة.

    • حدد حجم بالصيغة <size>[m|M|g|G]. مع m أو M، يحدد <size> حجم الذاكرة بالميبابايت (1024 × 1024 بايت). ومع g أو G، يحدد <size> حجم الذاكرة بالجيجابايت (1024 × 1024 × 1024 بايت). الوحدة المبدئية هي الميبابايت.

    • حدد نطاق بالصيغة 0x<start>-0x<end> كما هو موضح في مخرجات أمر lsmem(1). يمثل <start> العنوان الست عشري للبايت الأول، ويمثل <end> العنوان الست عشري للبايت الأخير في نطاق الذاكرة.

    • حدد نطاق-الحظر بالصيغة <الأول>-<الأخير> أو <كتلة> كما هو موضح في مخرجات الأمر lsmem(1). <الأول> هو رقم أول كتلة ذاكرة و <الأخير> هو رقم آخر كتلة ذاكرة في نطاق الذاكرة. بدلاً من ذلك، يمكن تحديد كتلة واحدة. يتطلب نطاق-الحظر الخيار --blocks.

    • حدد منطقة كاسم لمنطقة ذاكرة، كما هو موضح في مخرجات الأمر lsmem -o +ZONES. تعرض المخرجات منطقة ذاكرة صالحة واحدة أو أكثر لكل نطاق ذاكرة. في حال عُرضت مناطق متعددة، فإن نطاق الذاكرة ينتمي حاليًا إلى المنطقة الأولى. سيضبط chmem الذاكرة مبدئيًا لتكون متصلة بالمنطقة Movable، إذا كانت هذه من بين المناطق الصالحة. يمكن تغيير هذا الوضع المبدئي بتحديد الخيار --zone مع منطقة صالحة أخرى. لغرض "بالون الذاكرة" (memory ballooning)، يُوصى باختيار المنطقة Movable لتوصيل الذاكرة وفصلها، إن أمكن. من المرجح جدًا أن تكون الذاكرة في هذه المنطقة قابلة للفصل مرة أخرى، لكن لا يمكن استخدامها لتخصيصات النواة العشوائية، بل فقط للصفحات القابلة للنقل (مثل صفحات الذاكرة المجهولة وخبيئة الصفحات). استخدم خيار --help لرؤية كافة المناطق المتاحة.

    • حدد قيمة MEMMAP-ON-MEMORY لتكون 1 أو 0. القيمة 1 تخصص البيانات الوصفية للتبديل السريع (مثل مصفوفة struct pages) من ذاكرة التبديل السريع نفسها، مما يمكن من عمليات الإضافة الساخنة حتى تحت ضغط الذاكرة ودون الحاجة لذاكرة نظام إضافية للقيام بذلك. القيمة 0 تخزن البيانات الوصفية للذاكرة المضافة سرياً في ذاكرة النظام العادية، مما يساعد في تجنب المشاكل المتعلقة بتجزئة الذاكرة الفيزيائية المتصلة عبر كتل الذاكرة. لا يمكن ضبط القيمة إلا عندما تكون كتلة الذاكرة في حالة غير مهيأة، ويكون الخيار --memmap-on-memory صالحاً فقط مع --configure. إذا لم يُحدد، وإذا كان مدعوماً، يستخدم chmem القيمة المبدئية الموضحة في مخرجات lsmem.

يضبط الخيار --enable الذاكرة، إذا كانت البنية تدعم ذلك. وإذا لم يكن ضبط الذاكرة مدعوماً من البنية، فإن --enable سيظل يجعل الذاكرة متصلة.

يجعل الخيار --disable الذاكرة غير متصلة وينفذ خطوة إلغاء الضبط اختيارياً إذا كانت البنية تدعم ذلك.

يطلب الخيار --configure ذاكرة من مفرط الإشراف (hypervisor) دون جعلها متصلة، عندما تدعم البنية ذلك، مما يسمح بالتحكم الصريح واستخدام --memmap-on-memory.

يعيد الخيار --deconfigure موارد الذاكرة إلى مفرط الإشراف إذا كانت البنية تدعم ذلك.

يجب محاذاة حجم و نطاق مع حجم كتلة ذاكرة لينكس، كما هو موضح في مخرجات الأمر lsmem(1).

يمكن أن يفشل توصيل الذاكرة لأسباب مختلفة. في الأنظمة الافتراضية، يمكن أن يفشل إذا لم يكن لدى المفرط (hypervisor) ذاكرة كافية متبقية، على سبيل المثال بسبب الإفراط في تخصيص الذاكرة. كما يمكن أن يفشل فصل الذاكرة إذا لم يتمكن لينكس من تحرير الذاكرة. إذا أمكن توصيل أو فصل جزء فقط من الذاكرة المطلوبة، فستخبرك رسالة بمقدار الذاكرة التي وُصلت أو فُصلت بدلاً من المقدار المطلوب.

عند جعل الذاكرة متصلة أو عند ضبط الذاكرة، يبدأ chmem بأقل أرقام كتل الذاكرة. وعند جعل الذاكرة غير متصلة أو إلغاء ضبط الذاكرة، يبدأ chmem بأعلى أرقام كتل الذاكرة.

البنية

    • بنية s390:

MEMMAP-ON-MEMORY: بالنسبة لكتل الذاكرة المضبوطة لتكون متصلة عند الإقلاع، القيمة المبدئية هي 0 لأنها تضاف دون دعم memmap-on-memory. الذاكرة المضافة ديناميكياً في وقت التشغيل تستخدم القيمة المبدئية المعروضة في مخرجات lsmem.

الخيارات

-b، --blocks
    استخدم معامل نطاق-الحظر بدلاً من نطاق أو حجم لخياري --enable و --disable.

-c، --configure
    اضبط الـ نطاق أو الـ حجم أو الـ نطاق_الكتلي المحدد للذاكرة ليُضبط.

-d، --disable
    اجعل نطاق أو حجم أو نطاق-الحظر المحددة للذاكرة غير متصلة (offline).

-e، --enable
    اجعل نطاق أو حجم أو نطاق-الحظر المحددة للذاكرة متصلة (online).

-g، --deconfigure
    اضبط الـ نطاق أو الـ حجم أو الـ نطاق_الكتلي المحدد للذاكرة ليُلغى ضبطه.

-m، --memmap-on-memory
    اختر memmap-on-memory للـ نطاق أو الـ حجم أو الـ نطاق_الكتلي المحدد للذاكرة. هذا الخيار صالح فقط مع --configure.

-z، --zone
    اختر نطاق الذاكرة منطقة حيث تُجعل نطاق أو حجم أو نطاق-الحظر المحددة للذاكرة متصلة أو غير متصلة. مبدئياً، ستُجعل الذاكرة متصلة في النطاق Movable، إن أمكن.

-v، --verbose
    الوضع المسهب. يجعل chmem يطبع رسائل تنقيح حول تقدمه.

-h، --help
    اعرض نص المساعدة ثم اخرج.

-V، --version
    اعرض الإصدار واخرج.

حالة الخروج

يمتلك chmem قيم حالة الخروج التالية:

0
    نجاح

1
    فشل

64
    نجاح جزئي

أمثلة

chmem --enable 1024
    يطلب هذا الأمر جعل 1024 ميجابايت ثنائي (MiB) من الذاكرة متصلة.

chmem -e 2g
    يطلب هذا الأمر جعل 2 جيجابايت من الذاكرة متصلة، ويضبط الذاكرة مسبقاً إذا كانت البنية تدعم ذلك.

chmem --disable 0x00000000e4000000-0x00000000f3ffffff
    يجعل هذا الأمر نطاق الذاكرة من 0x00000000e4000000 إلى 0x00000000f3ffffff غير متصل ويلغي ضبطه إذا كانت البنية تدعم ذلك.

chmem -b -d 10
    يجعل هذا الأمر كتلة الذاكرة رقم 10 غير متصلة.

chmem -b -c 10 -m 1
    يضبط هذا الأمر كتلة الذاكرة 10 مع تفعيل MEMMAP-ON-MEMORY. يجب أن تكون الكتلة في حالة غير مهيأة.

chmem -b -c 10
    يضبط هذا الأمر كتلة الذاكرة 10 بالإعداد المبدئي لـ MEMMAP-ON-MEMORY. تُعرض القيمة المبدئية في lsmem --output-all. يجب أن تكون الكتلة في حالة غير مهيأة.

chmem -b -g 10
    يلغي هذا الأمر ضبط كتلة الذاكرة 10. يجب أن تكون الكتلة غير متصلة.

chmem -d 5g
    يجعل هذا الأمر 5 جيجابايت من الذاكرة غير متصلة ويلغي ضبطها إذا كانت البنية تدعم ذلك. الكتل غير المتصلة بالفعل ولكنها لا تزال مضبوطة يتم تخطيها ويجب إلغاء ضبطها صراحةً باستخدام --deconfigure.

انظر أيضاً

lsmem(1)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم

التوفر

الأمر chmem جزء من حزمة util-linux التي يمكن تنزيلها من