CHMEM(8) Systemadministration CHMEM(8)

chmem - konfigurera minne

chmem [-h] [-V] [-v] [-c|-e|-d|-g] [STORLEK|INTERVALL|-b BLOCKINTERVALL] [-z ZON] [-m MEMMAP-ON-MEMORY]

Kommandot chmem kopplar in eller från en viss mängd eller ett visst intervall av minne.

•Ange STORLEK som <storlek>[m|M|g|G]. Med m eller M anges minnesstorleken i MiB (1024 x 1024 byte). Med g eller G anges minnesstorleken i GiB (1024 x 1024 x 1024 byte). Standardenheten är MiB.
•Ange INTERVALL i formen 0x<start>-0x<slut> som visas i utdata från kommandot lsmem(1). <start> är den hexadecimala adressen för första byten och <slut> är den hexadecimala adressen för sista byten i minnesintervallet.
•Ange BLOCKINTERVALL i formen <första>-<sista> eller <block> som visas i utdata från kommandot lsmem(1). <första> är numret på första minnesblocket och <sista> är numret på sista minnesblocket i intervallet. Ett enskilt block kan också anges. BLOCKINTERVALL kräver flaggan --blocks.
•Ange ZON som namnet på en minneszon, enligt utdata från kommandot lsmem -o +ZONES. Där visas en eller flera giltiga minneszoner för varje minnesintervall. Om flera zoner visas tillhör intervallet för närvarande den första zonen. Som standard kopplar chmem in minnet i zonen Movable om den finns bland de giltiga zonerna. Detta kan ändras genom att ange en annan giltig zon med --zone. Vid minnesballongering rekommenderas om möjligt zonen Movable för inkoppling och frånkoppling av minne. Minnet i denna zon kan med betydligt större sannolikhet kopplas från igen, men kan inte användas för godtyckliga kärnallokeringar, endast för flyttbara sidor (exempelvis anonyma sidor och sidcachesidor). Använd --help för att se alla tillgängliga zoner.
•Ange MEMMAP-ON-MEMORY som 1 eller 0. Värdet 1 allokerar metadata för dynamisk minnestilläggning (såsom arrayen med struct page) från det tillagda minnet självt. Det gör att minne kan läggas till även vid minnesbrist och utan att ytterligare systemminne behövs för detta. Värdet 0 lagrar metadata för dynamiskt tillagt minne i vanligt systemminne, vilket hjälper till att undvika problem med fragmentering av sammanhängande fysiskt minne över minnesblock. Värdet kan endast ställas in när minnesblocket är avkonfigurerat, och --memmap-on-memory är endast giltig med --configure. Om inget anges och stöd finns använder chmem standardvärdet som visas i utdata från lsmem.

Flaggan --enable konfigurerar minnet om arkitekturen stöder detta. Om arkitekturen inte stöder minneskonfigurering kopplar --enable ändå in minnet.

Flaggan --disable kopplar från minnet och utför ett valfritt avkonfigureringssteg om arkitekturen stöder detta.

Flaggan --configure begär minne från hypervisorn utan att koppla in det, när arkitekturen stöder detta. Det ger explicit kontroll och möjlighet att använda --memmap-on-memory.

Flaggan --deconfigure återlämnar minnesresurser till hypervisorn om arkitekturen stöder detta.

STORLEK och INTERVALL måste vara justerade till Linux minnesblockstorlek, som visas i utdata från kommandot lsmem(1).

Att ställa in minne online kan misslyckas av olika skäl. På virtualiserade system kan det misslyckas om hypervisorn inte har tillräckligt med minne kvar, till exempel för att minnet har överbelastats. Att ställa in minne offline kan misslyckas om Linux inte kan frigöra minnet. Om bara en del av det begärda minnet kan ställas in online eller offline, visas ett meddelande om hur mycket minne som ställdes in online eller offline i stället för den begärda mängden.

När minne kopplas in eller konfigureras börjar chmem med de lägsta minnesblocksnumren. När minne kopplas från eller avkonfigureras börjar chmem med de högsta minnesblocksnumren.

•s390-arkitektur:

MEMMAP-ON-MEMORY: För minnesblock som konfigureras och kopplas in vid systemstart är standardvärdet 0 eftersom de läggs till utan stöd för memmap-on-memory. Minne som läggs till dynamiskt under körning använder standardvärdet som visas i utdata från lsmem.

-b, --blocks

Använd parametern BLOCKINTERVALL i stället för INTERVALL eller STORLEK för flaggorna --enable och --disable.

-c, --configure

Konfigurera angivet INTERVALL, angiven STORLEK eller angivet BLOCKINTERVALL av minne.

-d, --disable

Koppla från angivet INTERVALL, angiven STORLEK eller angivet BLOCKINTERVALL av minne.

-e, --enable

Koppla in angivet INTERVALL, angiven STORLEK eller angivet BLOCKINTERVALL av minne.

-g, --deconfigure

Avkonfigurera angivet INTERVALL, angiven STORLEK eller angivet BLOCKINTERVALL av minne.

-m, --memmap-on-memory

Välj memmap-on-memory för angivet INTERVALL, angiven STORLEK eller angivet BLOCKINTERVALL av minne. Flaggan är endast giltig med --configure.

-z, --zone

Välj minneszonen ZON där angivet INTERVALL, angiven STORLEK eller angivet BLOCKINTERVALL av minne ska kopplas in eller från. Som standard kopplas minnet om möjligt in i zonen Movable.

-v, --verbose

Utförligt läge. Gör att chmem skriver ut felsökningsmeddelanden om hur arbetet fortskrider.

-h, --help

Visa hjälptext och avsluta.

-V, --version

Visa version och avsluta.

chmem har följande värden för utgångsstatus:

0

lyckades

1

misslyckande

64

delvis framgång

chmem --enable 1024

Detta kommando begär att 1024 MiB minne ska sättas online.

chmem -e 2g

Detta kommando begär att 2 GB minne kopplas in och, om arkitekturen stöder detta, konfigurerar minnet först.

chmem --disable 0x00000000e4000000-0x00000000f3ffffff

Detta kommando kopplar från minnesintervallet från 0x00000000e4000000 till 0x00000000f3ffffff och avkonfigurerar det om arkitekturen stöder detta.

chmem -b -d 10

Detta kommando kopplar från minnesblock nummer 10.

chmem -b -c 10 -m 1

Detta kommando konfigurerar minnesblock 10 med MEMMAP-ON-MEMORY inställt. Blocket måste vara avkonfigurerat.

chmem -b -c 10

Detta kommando konfigurerar minnesblock 10 med standardinställningen för MEMMAP-ON-MEMORY. Standardvärdet visas i lsmem --output-all. Blocket måste vara avkonfigurerat.

chmem -b -g 10

Detta kommando avkonfigurerar minnesblock 10. Blocket måste vara frånkopplat.

chmem -d 5g

Detta kommando kopplar från 5 GB minne och avkonfigurerar det om arkitekturen stöder detta. Block som redan är frånkopplade men fortfarande konfigurerade hoppas över och måste avkonfigureras explicit med --deconfigure.

lsmem(1)

För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.

Kommandot chmem ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-21 util-linux 2.42.4