CHMEM(8) مدیریت سیستم CHMEM(8)

chmem - پیکربندی برخط یا برون‌خط حافظه سیستم

chmem [-h] [-V] [-v] [-e|-d] [SIZE|RANGE -b BLOCKRANGE] [-z ZONE]

دستور chmem اندازه یا بازه مشخصی از حافظه را برخط (online) یا برون‌خط (offline) می‌کند.

•مقدار SIZE را به صورت <size>[m|M|g|G] مشخص کنید. با m یا M، مقدار <size> اندازه حافظه را بر حسب مبی‌بایت (MiB یا ۱۰۲۴ × ۱۰۲۴ بایت) مشخص می‌کند. با g یا G، مقدار <size> اندازه حافظه را بر حسب گیبی‌بایت (GiB یا ۱۰۲۴ × ۱۰۲۴ × ۱۰۲۴ بایت) تعیین می‌کند. یکای پیش‌فرض MiB است.
•مقدار RANGE را به فرم 0x<start>-0x<end> همانند آنچه در خروجی دستور lsmem(1) نشان داده می‌شود مشخص کنید. مقدار <start> نشانی هگزادسیمال نخستین بایت و <end> نشانی هگزادسیمال آخرین بایت در بازه حافظه است.
•مقدار BLOCKRANGE را به فرم <first>-<last> یا <block> همانند آنچه در خروجی دستور lsmem(1) نشان داده می‌شود مشخص کنید. مقدار <first> شماره نخستین بلوک حافظه و <last> شماره آخرین بلوک حافظه در بازه حافظه است. همچنین می‌توان یک بلوک منفرد را مشخص کرد. استفاده از BLOCKRANGE نیازمند گزینه --blocks است.
•مقدار ZONE را به عنوان نام یک ناحیه حافظه، همانند آنچه در خروجی دستور lsmem -o +ZONES نشان داده شده مشخص کنید. این خروجی یک یا چند ناحیه معتبر حافظه را برای هر بازه حافظه نشان می‌دهد. اگر چندین ناحیه نشان داده شود، بازه حافظه در حال حاضر متعلق به ناحیه نخست است. به‌طور پیش‌فرض، chmem در صورتی که ناحیه Movable در میان نواحی معتبر باشد، حافظه را در این ناحیه برخط می‌کند. این پیش‌فرض را می‌توان با تعیین گزینه --zone به همراه یک ناحیه معتبر دیگر تغییر داد. برای بالونینگ حافظه (memory ballooning)، توصیه می‌شود در صورت امکان ناحیه Movable برای برخط و برون‌خط کردن حافظه انتخاب شود. احتمال اینکه حافظه در این ناحیه بتواند مجدداً برون‌خط شود بسیار بیشتر است، اما نمی‌توان از آن برای تخصیص‌های دلخواه هسته استفاده کرد، بلکه تنها برای صفحات قابل‌انتقال (مانند صفحات ناشناس و حافظه پنهان صفحه) قابل استفاده است. برای دیدن تمام نواحی موجود از گزینه --help استفاده کنید.

مقادیر SIZE و RANGE باید با اندازه بلوک حافظه لینوکس تراز (aligned) باشند، همان‌طور که در خروجی دستور lsmem(1) نشان داده شده است.

برخط کردن حافظه ممکن است به دلایل گوناگونی با شکست مواجه شود. در سیستم‌های مجازی‌سازی‌شده، اگر هایپروایزر حافظه کافی در اختیار نداشته باشد (برای نمونه به دلیل تخصیص بیش از حد یا overcommit شدن حافظه)، این عملیات ممکن است شکست بخورد. برون‌خط کردن حافظه نیز در صورتی که لینوکس نتواند حافظه را آزاد کند ممکن است ناموفق باشد. اگر تنها بخشی از حافظه درخواستی بتواند برخط یا برون‌خط شود، پیامی به شما اعلام می‌کند که به جای مقدار درخواستی، چه مقدار حافظه برخط یا برون‌خط شده است.

هنگام برخط کردن حافظه، chmem از کمترین شماره‌های بلوک حافظه شروع می‌کند. هنگام برون‌خط کردن حافظه، chmem از بیشترین شماره‌های بلوک حافظه آغاز می‌کند.

-b, --blocks

استفاده از پارامتر BLOCKRANGE به جای RANGE یا SIZE برای گزینه‌های --enable و --disable.

-d, --disable

برون‌خط کردن RANGE، SIZE یا BLOCKRANGE مشخص‌شده از حافظه.

-e, --enable

برخط کردن RANGE، SIZE یا BLOCKRANGE مشخص‌شده از حافظه.

-z, --zone

انتخاب ناحیه حافظه (ZONE) که قرار است RANGE، SIZE یا BLOCKRANGE مشخص‌شده از حافظه در آن برخط یا برون‌خط شود. به‌طور پیش‌فرض، در صورت امکان حافظه در ناحیه Movable برخط خواهد شد.

-v, --verbose

حالت پرگو (verbose). باعث می‌شود chmem پیام‌های اشکال‌زدایی درباره روند پیشرفت خود را چاپ کند.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

دستور chmem مقادیر وضعیت خروج زیر را دارد:

0

موفقیت

1

شکست

64

موفقیت نسبی

chmem --enable 1024

این دستور درخواست برخط شدن ۱۰۲۴ مبی‌بایت از حافظه را می‌دهد.

chmem -e 2g

این دستور درخواست برخط شدن ۲ گیبی‌بایت از حافظه را می‌دهد.

chmem --disable 0x00000000e4000000-0x00000000f3ffffff

این دستور درخواست برون‌خط شدن بازه حافظه از 0x00000000e4000000 تا 0x00000000f3ffffff را می‌دهد.

chmem -b -d 10

این دستور درخواست برون‌خط شدن بلوک شماره ۱۰ حافظه را می‌دهد.

lsmem(1)

برای گزارش اشکال‌ها، از ردیاب اشکال https://github.com/util-linux/util-linux/issues.

دستور chmem بخشی از بسته util-linux است که می‌توان آن را از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux.

2026-06-16 util-linux 2.41.5