NAZWA¶
chmem - konfiguruje pamięć
SKŁADNIA¶
chmem [-h] [-V*] [-v] [-e|-d]
[ROZMIAR|ZAKRES -b ZAKRES-BLOKÓW]
[-z STREFA]
OPIS¶
Polecenie chmem może ustawić dany rozmiar lub zakres
pamięci jako aktywną lub nieaktywną.
•ROZMIAR nelaży podać jako
<rozmiar>[m|M|g|G]. Z przyrostkiem m lub M, <rozmiar>
określa rozmiar pamięci w MiB (1024 x 1024 bajtów). Z
przyrostkiem g lub G, <rozmiar> określa rozmiar pamięci w
GiB (1024 x 1024 x 1024 bajtów). Domyślną
jednostką są MiB.
•
ZAKRES należy podać w
postaci 0x<początek>-0x<koniec>, tak jak wyświetla
go wynik polecenia
lsmem(1). <Początek> jest szesnastkowym
adresem pierwszego bajtu, a <koniec> jest szesnastkowym adresem
ostatniego bajtu w danym zakresie pamięci.
•
ZAKRES-BLOKÓW należy
podać w postaci <pierwszy>-<ostatni> lub <blok>, tak
jak wyświetla go polecenie
lsmem(1). <Pierwszy> to numer
pierwszego bloku pamięci, a <ostatni> to numer ostatniego bloku
pamięci w danym zakresie pamięci. Alternatywnie można
podać pojedynczy <blok>.
ZAKRES-BLOKÓW wymaga opcji
--blocks.
•STREFĘ należy podać
jako nazwę strefy pamięci, tak jak wyświetla ją
polecenie lsmem -o +ZONES. Wyjście pokaże jedną
lub więcej prawidłowych stref dla każdego zakresu
pamięci. Jeśli wyświetli się kilka stref, to dany
zakres pamięci obecnie należy do pierwszej strefy.
Domyślnie, chmem ustawi pamięć online do strefy
Movable, jeśli taka istnieje wśród prawidłowych
stref. To domyślne zachowanie można zmienić
podając opcję --zone z inną
prawidłową strefą. Przy balonikowaniu pamięci,
zaleca się wybierać strefę Movable dla pamięci
aktywnej i nieaktywnej, jeśli tylko jest dostępna.
Pamięć w tej strefie ma znacznie większe
prawdopodobieństwo ponownego zdezaktywowania, lecz nie może
być stosowana do dowolnych przydziałów jądra,
tylko dla migrowalnych stron (np. stron buforowanych i anonimowych). Wszystkie
dostępne strefy pokaże opcja --help.
ROZMIAR i ZAKRES muszą być
wyrównane do rozmiaru bloku pamięci Linuksa, zgodnie z
wynikiem polecenia lsmem(1).
Ustawienie pamięci jako aktywną może
się nie powieść z wielu powodów. W systemach
wirtualizowanych może się tak zdarzyć, gdy nadzorca nie
będzie miał odpowiednio dużo pamięci, np. z
powodu przydziału ponad stan faktyczny (overcommit). Ustawienie
pamięci jako nieaktywną może zawieść, gdy
Linux nie może zwolnić pamięci. Jeśli jedynie
część żądanej pamięci może
zostać aktywowana lub zdezaktywowana, odpowiedni komunikat
poinformuje, jak wiele z żądanej wielkości udało
się aktywować lub zdezaktywować.
Przy aktywowaniu pamięci chmem rozpoczyna od
najniższych numerów bloków pamięci. Przy
dezaktywowaniu pamięci chmem rozpoczyna od najwyższych
numerów bloków pamięci.
OPCJE¶
-b, --blocks
Korzysta z parametru ZAKRES-BLOKÓW zamiast
z ZAKRESU lub ROZMIARU przy opcjach --enable i
--disable.
-d, --disable
Dezaktywuje podany ZAKRES, ROZMIAR, lub
ZAKRES-BLOKÓW pamięci.
-e, --enable
Aktywuje podany ZAKRES, ROZMIAR, lub
ZAKRES-BLOKÓW pamięci.
-z, --zone
Wybiera STREFĘ, w której aktywowany
lub dezaktywowany ma być podany ZAKRES, ROZMIAR lub
ZAKRES-BLOKÓW pamięci. Domyślnie
pamięć będzie aktywowana w strefie Movable, jeśli
to tylko możliwe.
-v, --verbose
Tryb szczegółowy. Powoduje, że
chmem wypisuje komunikaty diagnostyczne o swoim działaniu.
-h, --help
Wyświetla ten tekst i wychodzi.
-V, --version
Wyświetla wersję i wychodzi.
STATUS ZAKOŃCZENIA¶
chmem ma następujące wartości statusu
zakończenia:
0
sukces
1
niepowodzenie
64
częściowy sukces
PRZYKŁAD¶
chmem --enable 1024
Polecenie żąda aktywowania 1024 MiB
pamięci.
chmem -e 2g
Polecenie żąda aktywowania 2 GiB
pamięci.
chmem --disable 0x00000000e4000000-0x00000000f3ffffff
Polecenie żąda dezaktywowania zakresu
pamięci od 0x00000000e4000000 do 0x00000000f3ffffff.
chmem -b -d 10
Polecenie żąda dezaktywowania bloku
pamięci o numerze 10.