CHMEM(8) Administracja systemem CHMEM(8)

chmem - konfiguruje pamięć

chmem [-h] [-V*] [-v] [-c|-e|-d|-g] [ROZMIAR|ZAKRES|-b ZAKRES-BLOKÓW] [-z STREFA] [-m MAPA-PAMIĘCI-W-PAMIĘCI]

Polecenie chmem może ustawić dany rozmiar lub zakres pamięci jako aktywną lub nieaktywną.

ROZMIAR należ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.
MAPA-PAMIĘCI-W-PAMIĘCI podaje się jako 1 lub 0. Wartość 1 przydziela metadane pamięci typu hotplug (takie jak struktura tablicy stron) niezależnie od samej pamięci podlegającej podłączaniu w trybie hotplug, co pozwala na dokonywanie dołączania pamięci nawet w sytuacjach jej niedoboru, nie wymagając do tego dodatkowej pamięci. Wartość 0 przechowuje metadane pamięci typu hotplug w zwykłej pamięci systemowej, co pozwala uniknąć problemów wynikających z fragmentacji ciągłej pamięci fizycznej na przestrzeni bloków pamięci. Wartość można ustawić tylko, jeśli bloki pamięci są w stanie zdekonfigurowanym, a --memmap-on-memory jest prawidłowe tylko z opcją --configure. Jeśli się jej nie poda, a jest obsługiwana, chmem użyje wartości domyślnej pokazanej w wyjściu lsmem.

Opcja --enable konfiguruje pamięć, jeśli jest to obsługiwane przez architekturę. Jeśli konfigurowanie pamięci nie jest obsługiwane przez architekturę, --enable wciąż dokona aktywacji pamięci.

Opcja --disable dezaktywuje pamięć i dokonuje opcjonalnego kroku dekonfiguracji, jeśli jest to obsługiwane przez architekturę.

Opcja --configure żąda pamięci od nadzorcy bez aktywowania jej, gdy jest to obsługiwane przez architekturę, pozwalając na jawne sterowanie i stosowanie opcji --memmap-on-memory.

Opcja --deconfigure zwraca zasoby pamięci nadzorcy, jeśli jest to obsługiwane przez architekturę.

ROZMIAR i ZAKRES muszą być wyrównane do rozmiaru bloku pamięci Linuksa, zgodnie z wynikiem polecenia lsmem(1).

Ustawienie pamięci jako aktywnej 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 nieaktywnej 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 lub konfigurowaniu pamięci, chmem rozpoczyna od najniższych numerów bloków pamięci. Przy dezaktywowaniu lub dekonfigurowaniu pamięci, chmem rozpoczyna od najwyższych numerów bloków pamięci.

•Architektura s390:

MAPA-PAMIĘCI-W-PAMIĘCI: W przypadku bloków pamięci skonfigurowanych i aktywowanych przy rozruchu, domyślna wartość wynosi 0, ponieważ są one dodawane bez obsługi memmap-on-memory. Pamięć dodawana dynamicznie w czasie uruchomienia korzysta z domyślnej wartości wyświetlanej w wyjściu lsmem.

-b, --blocks

Korzysta z parametru ZAKRES-BLOKÓW zamiast z ZAKRESU lub ROZMIARU przy opcjach --enable i --disable.

-c, --configure

Ustawia podany ZAKRES, ROZMIAR, lub ZAKRES-BLOKÓW pamięci do skonfigurowania.

-d, --disable

Ustawia podany ZAKRES, ROZMIAR, lub ZAKRES-BLOKÓW pamięci jako nieaktywny.

-e, --enable

Ustawia podany ZAKRES, ROZMIAR, lub ZAKRES-BLOKÓW pamięci jako aktywny.

-g, --deconfigure

Ustawia podany ZAKRES, ROZMIAR, lub ZAKRES-BLOKÓW pamięci do zdekonfigurowania.

-m, --memmap-on-memory

Ustawia memmap-on-memory podanego ZAKRESU, ROZMIARU, lub ZAKRESU-BLOKÓW pamięci. Opcja ta jest prawidłowa tylko łącznie z --configure.

-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.

chmem ma następujące wartości statusu zakończenia:

0

sukces

1

niepowodzenie

64

częściowy sukces

chmem --enable 1024

Polecenie żąda aktywowania 1024 MiB pamięci.

chmem -e 2g

Polecenie żąda aktywowania 2 GB pamięci oraz, jeśli jest to obsługiwane przez architekturę, uprzedniego skonfigurowania pamięci.

chmem --disable 0x00000000e4000000-0x00000000f3ffffff

Polecenie dezaktywuje pamięć z zakresu od 0x00000000e4000000 do 0x00000000f3ffffff i dekonfiguruje ją, jeśli jest to obsługiwane przez architekturę.

chmem -b -d 10

Polecenie dezaktywuje blok pamięci o numerze 10.

chmem -b -c 10 -m 1

Polecenie konfiguruje blok pamięci o numerze 10 z ustawioną MAPĄ-PAMIĘCI-W-PAMIĘCI. Blok musi być w stanie zdekonfigurowanym.

chmem -b -c 10

Polecenie konfiguruje blok pamięci o numerze 10 z domyślnym ustawieniem MAPY-PAMIĘCI-W-PAMIĘCI. Domyślna wartość jest wyświetlana w lsmem --output-all. Blok musi być w stanie zdekonfigurowanym.

chmem -b -g 10

Polecenie dekonfiguruje blok pamięci o numerze 10. Blok musi być nieaktywny.

chmem -d 5g

Polecenie dezaktywuje 5 GB pamięci i dekonfiguruje ją, jeśli jest to obsługiwane przez architekturę. Bloki już zdezaktywowane ale wciąż skonfigurowane są pomijane i muszą być zdekonfigurowane bezpośrednio opcją --deconfigure.

lsmem(1)

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Polecenie chmem jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-02 util-linux 2.42.3