الاسم
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.