NUME¶
chmem - configurează memoria
REZUMAT¶
chmem [-h] [-V] [-v]
[-c|-e|-d|-g]
[DIMENSIUNE|INTERVAL|-b INTERVAL-BLOC]
[-z ZONA] [-m MEMMAP-ON-MEMORY]
DESCRIERE¶
Comanda chmem stabilește o anumită dimensiune
sau un anumit interval de memorie ca fiind activat sau dezactivat.
•Specifică DIMENSIUNEA ca
<dimensiune>[m|M|g|G]. Cu m sau M, <dimensiunea> specifică
dimensiunea memoriei în Mio (1024 x 1024 octeți). Cu g sau G,
<dimensiune> specifică dimensiunea memoriei în Gio (1024 x
1024 x 1024 bytes). Unitatea implicită este Mio.
•Specifică
INTERVALUL sub forma
0x<începe>-0x<termină>, așa cum se
arată în ieșirea comenzii
lsmem(1).
<începe> este adresa hexazecimală a primului octet
și <termină> este adresa hexazecimală a ultimului
octet din intervalul de memorie.
•Specifică
INTERVAL-BLOC sub forma
<primul>-<ultimul> sau <bloc>, așa cum se
arată în ieșirea comenzii
lsmem(1). <primul>
este numărul primului bloc de memorie, iar <ultimul> este
numărul ultimului bloc de memorie din intervalul de memorie.
Alternativ, se poate specifica un singur bloc.
INTERVAL-BLOC
necesită opțiunea
--blocks.
•Specifică ZONA ca nume al unei zone
de memorie, așa cum se arată în rezultatul comenzii
lsmem -o +ZONE. Ieșirea arată una sau mai multe zone de
memorie valide pentru fiecare interval de memorie. Dacă sunt
afișate mai multe zone, atunci intervalul de memorie aparține
în prezent primei zone. În mod implicit, chmem va stabili
memoria activă în zona Movable, dacă aceasta se
află printre zonele valide. Această valoare implicită
poate fi modificată prin specificarea opțiunii --zone cu
o altă zonă validă. Pentru umflarea memoriei, se
recomandă să se selecteze zona Movable pentru memoria
activă și inactivă, dacă este posibil. Memoria din
această zonă are mult mai multe șanse să
poată fi din nou inactivă, dar nu poate fi utilizată
pentru alocări arbitrare ale nucleului, ci doar pentru pagini migrabile
(de exemplu, pagini anonime și pagini din zona de stocare (cache) a
paginilor). Utilizați opțiunea --help pentru a vedea
toate zonele disponibile.
•Specifică MEMMAP-ON-MEMORY ca fiind
1 sau 0. Valoarea 1 alocă metadatele hotplug (cum ar fi matricea struct
pages) din memoria hotplug propriu-zisă, permițând
operații de adăugare la cald chiar și în
condiții de presiune asupra memoriei și fără a
necesita memorie de sistem suplimentară pentru aceasta. O valoare de 0
stochează metadatele memoriei hotplug în memoria
obișnuită a sistemului, ceea ce ajută la evitarea
problemelor legate de fragmentarea memoriei fizice continue între
blocurile de memorie. Valoarea poate fi stabilită numai când
blocul de memorie se află într-o stare deconfigurată, iar
--memmap-on-memory este valabilă numai cu --configure.
Dacă nu este specificată, și dacă este
acceptată, chmem folosește valoarea implicită
afișată în ieșirea lsmem.
Opțiunea --enable configurează memoria,
dacă acest lucru este acceptat de arhitectură. Dacă
configurarea memoriei nu este acceptată de arhitectură,
opțiunea --enable activează totuși memoria.
Opțiunea --disable dezactivează memoria
și efectuează o etapă opțională de
deconfigurare, dacă aceasta este acceptată de
arhitectură.
Opțiunea --configure solicită memorie de la
hipervizor fără a o activa, atunci când arhitectura
permite acest lucru, permițând controlul explicit și
utilizarea opțiunii --memmap-on-memory.
Opțiunea --deconfigure eliberează resursele
de memorie către hipervizor, dacă arhitectura acceptă
această funcție.
DIMENSIUNEA și INTERVALUL trebuie să
fie aliniate la dimensiunea blocului de memorie Linux, așa cum se
arată în ieșirea comenzii lsmem(1).
Stabilirea memoriei ca activă, poate eșua din
diverse motive. Pe sistemele virtualizate, poate eșua dacă
hipervizorul nu mai are suficientă memorie, de exemplu, pentru
că memoria a fost suprasolicitată. Stabilirea memoriei ca
inactivă poate eșua dacă Linux nu poate elibera
memoria. În cazul în care numai o parte din memoria
solicitată poate fi stabilită activă sau
inactivă, un mesaj vă informează cât de
multă memorie a fost stabilită activă sau
inactivă în loc de cantitatea solicitată.
Atunci când stabilește memoria ca activă sau
când configurează memoria, chmem începe cu
numerele celor mai mici blocuri de memorie. Atunci când
stabilește memoria ca dezactivată sau când
deconfigurează memoria, chmem începe cu numerele celor
mai mari blocuri de memorie.
ARHITECTURA¶
•Arhitectura s390:
MEMMAP-ON-MEMORY: Pentru blocurile de memorie configurate
ca active la pornire, valoarea implicită este 0, deoarece acestea
sunt adăugate fără suport pentru memmap-on-memory.
Memoria adăugată dinamic în timpul rulării
utilizează valoarea implicită afișată la
ieșirea comenzii lsmem.
OPȚIUNI¶
-b, --blocks
Utilizează un parametru INTERVAL-BLOC
în loc de INTERVAL sau DIMENSIUNE pentru opțiunile
--enable și --disable.
-c, --configure
Stabilește INTERVALUL, DIMENSIUNEA
sau INTERVALUL-BLOC specificat de memorie ce urmează să
fie configurat.
-d, --disable
Stabilește INTERVALUL, DIMENSIUNEA
sau INTERVALUL-BLOC specificat de memorie ca dezactivat.
-e, --enable
Stabilește INTERVALUL, DIMENSIUNEA
sau INTERVALUL-BLOC specificat de memorie ca activat.
-g, --deconfigure
Stabilește INTERVALUL, DIMENSIUNEA
sau INTERVALUL-BLOC specificat de memorie ca deconfigurat.
-m, --memmap-on-memory
Selectează memmap-on-memory pentru
INTERVALUL, DIMENSIUNEA sau INTERVALUL-BLOC specificat de
memorie. această opțiune este validă doar
împreună cu opțiunea --configure.
-z, --zone
Selectează ZONA de memorie în care
se va stabili INTERVALUL, DIMENSIUNEA sau INTERVALUL-BLOC
de memorie specificat, activat sau dezactivat. În mod implicit, memoria
va fi stabilită ca activată în zona Movable, dacă
este posibil.
-v, --verbose
Modul descriptiv. Face ca chmem să
afișeze mesaje de depanare despre progresul său.
-h, --help
Afișează acest mesaj de ajutor și
iese.
-V, --version
Afișează versiunea și iese.
STARE DE IEȘIRE¶
chmem are următoarele valori de stare de
ieșire:
0
succes
1
eșec
64
succes parțial
EXEMPLE¶
chmem --enable 1024
Această comandă solicită ca 1024 Mio
de memorie să fie configurată ca activată.
chmem -e 2g
Această comandă solicită activarea a
2 Go de memorie și, dacă arhitectura permite acest lucru,
configurează memoria în prealabil.
chmem --disable 0x00000000e4000000-0x00000000f3ffffff
Această comandă dezactivează
intervalul de memorie cuprins între 0x00000000e4000000 și
0x00000000f3ffffff și îl deconfigurează, dacă
arhitectura permite acest lucru.
chmem -b -d 10
Această comandă dezactivează blocul
de memorie numărul 10.
chmem -b -c 10 -m 1
Această comandă configurează blocul
de memorie 10 cu opțiunea MEMMAP-ON-MEMORY activată.
Blocul trebuie să se afle într-o stare
neconfigurată.
chmem -b -c 10
Această comandă configurează blocul
de memorie 10 cu opțiunea implicită MEMMAP-ON-MEMORY.
Valoarea implicită este afișată prin comanda lsmem
--output-all. Blocul trebuie să se afle într-o stare
neconfigurată.
chmem -b -g 10
Această comandă deconfigurează
blocul de memorie numărul 10. Blocul trebuie să fie
dezactivat.
chmem -d 5g
Această comandă dezactivează 5 Go de
memorie și o deconfigurează, dacă arhitectura permite
acest lucru. Blocurile care sunt deja dezactivate, dar încă
configurate, sunt omise și trebuie deconfigurate în mod explicit
cu opțiunea --deconfigure.