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.