Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wymieniono obsługiwane niestandardowe parametry konfiguracji węzłów dla pul węzłów Azure Kubernetes Service (AKS). Aby dowiedzieć się, jak tworzyć i stosować pliki konfiguracji, zobacz Dostosowywanie konfiguracji węzła dla pul węzłów usługi AKS.
Niestandardowe parametry konfiguracji usługi Kubelet
Ważna
Podczas włączania niebezpiecznych systemów systemowych przejmujesz odpowiedzialność za stabilność węzła i zachowanie obciążenia. Niebezpieczne parametry sysctl mogą potencjalnie powodować niestabilność węzła lub luki w zabezpieczeniach, jeśli są nieprawidłowo skonfigurowane. Upewnij się, że rozumiesz implikacje włączania określonych niebezpiecznych systemów i uważnie monitoruj kondycję klastra po wprowadzeniu zmian.
Note
Ustawienia kubeReserved, , softEvictionThresholdhardEvictionThreshold, softEvictionGracePeriodi evictionMaxPodGracePeriodInSeconds są częścią wersji zapoznawczej wzmacniania zabezpieczeń węzłów usługi AKS i mają zastosowanie tylko do pul węzłów systemu Linux. Zarejestruj flagę CustomNodeConfigPreview funkcji przed użyciem tych ustawień. Aby włączyć wzmacnianie zabezpieczeń węzłów, zobacz Node Hardening (wersja zapoznawcza) w usłudze AKS.
Dla każdego sygnału eksmisji ustaw wartości i softEvictionThreshold pasujące softEvictionGracePeriod . Możesz pominąć obie wartości, aby użyć wartości domyślnej lub ustawić obie wartości na puste ciągi, aby zrezygnować z miękkiej eksmisji dla tego sygnału. Jeśli określisz próg miękkiej eksmisji, musi być większy niż efektywny próg twardej eksmisji dla tego samego sygnału.
Niestandardowa konfiguracja kubelet w systemie Linux
| Parametr | Dozwolone wartości/interwał | Domyślny | Description |
|---|---|---|---|
cpuManagerPolicy |
brak, statyczny | none | Zasady statyczne umożliwiają kontenerom w gwarantowanych zasobnikach z żądaniami całkowitymi CPU dostęp do wyłącznych procesorów CPU na węźle. |
cpuCfsQuota |
prawda, fałsz | true (prawda) | Włącz/wyłącz egzekwowanie limitów kwoty CPU CFS dla kontenerów z określonymi limitami CPU. |
cpuCfsQuotaPeriod |
Interwał w milisekundach (ms) | 100ms |
Ustawia wartość okresu limitu przydziału CPU CFS. |
imageGcHighThreshold |
0–100 | 85 | Procent użycia dysku, po osiągnięciu którego usuwanie zbędnych obrazów jest zawsze uruchamiane. Minimalne użycie dysku, które wyzwala odśmiecanie pamięci. Aby wyłączyć zbieranie nieużywanych obrazów, ustaw wartość na 100. |
imageGcLowThreshold |
0–100, nie wyższe niż imageGcHighThreshold |
80 | Procent użycia dysku, poniżej którego nigdy nie jest uruchamiane czyszczenie nieużywanych danych obrazu. Minimalne użycie dysku, które może wyzwalać zbieranie śmieci. |
topologyManagerPolicy |
none, best-effort, restricted, pojedynczy węzeł NUMA (single-numa-node) | none | Optymalizuj wyrównanie węzła NUMA. Aby uzyskać więcej informacji, zobacz Control Topology Management Policies on a node (Zasady zarządzania topologią sterowania w węźle). |
allowedUnsafeSysctls |
kernel.shm*, kernel.msg*, , kernel.sem, fs.mqueue.*net.* |
Żadne | Dozwolona lista niebezpiecznych systemów lub niebezpiecznych wzorców sysctl. |
containerLogMaxSizeMB |
Rozmiar w megabajtach (MB) | 50 | Maksymalny rozmiar (na przykład 10 MB) pliku dziennika kontenera przed jego obróceniu. |
containerLogMaxFiles |
2 lub większe | 5 | Maksymalna liczba plików dziennika kontenera do zachowania dla kontenera. |
podMaxPids |
-1 do limitu PID dla jądra | -1 (nieskończony) | Maksymalna liczba identyfikatorów procesów, które można uruchomić w zasobniku. |
seccompDefault |
Unconfined, RuntimeDefault |
Unconfined |
Ustawia domyślny profil seccomp dla wszystkich obciążeń.
RuntimeDefault używa domyślnego profilu seccomp kontenera, ograniczając niektóre wywołania systemowe w celu zwiększenia bezpieczeństwa. Ograniczone wywołania systemowe kończą się niepowodzeniem.
Unconfined nie nakłada żadnych ograniczeń na wywołania systemowe, zezwalając na wszystkie wywołania systemowe i zmniejszając bezpieczeństwo. Aby uzyskać więcej informacji, zobacz profil seccomp domyślny dla containerd. Ten parametr jest w wersji zapoznawczej.
Zarejestruj flagę funkcji "KubeletDefaultSeccompProfilePreview" przy użyciu polecenia az feature register z --namespace "Microsoft.ContainerService". |
kubeReserved.cpuMillicores |
Od 140 do pojemności procesora CPU puli węzłów w milisekundach | Usługa AKS obliczana na podstawie rozmiaru maszyny wirtualnej | Rezerwuje procesor CPU dla demonów systemu Kubernetes. |
kubeReserved.memoryMB |
750 do pojemności pamięci puli węzłów w programie MiB | Usługa AKS obliczana z pamięci węzła i maksymalne zasobniki na węzeł: min(20 × maxPods + 50, 25% of node memory) MiB. W przypadku wzmacniania zabezpieczeń węzłów: min(35 × maxPods + max(250, 2% of node memory), 25% of node memory) MiB |
Rezerwuje pamięć demonów systemu Kubernetes. |
hardEvictionThreshold.memoryAvailable |
<number>Ki, lub <number>Mi<number>Gi z co najmniej 100Mi; lub 2% do100% |
100Mi. W przypadku wzmacniania zabezpieczeń węzłów: 250Mi dla węzłów z 8 GiB pamięci lub mniej, 375Mi dla węzłów z więcej niż 8 GiB i mniej niż 32 GiB, a 512Mi dla węzłów z 32 GiB lub więcej |
Ustawia twardy próg eksmisji dla dostępnej pamięci. |
hardEvictionThreshold.nodeFsAvailable |
<number>Ki, , <number>Mi<number>Gilub 10% do100% |
10% |
Ustawia twardy próg eksmisji dla dostępnego miejsca w systemie plików węzła. |
hardEvictionThreshold.nodeFsInodesFree |
<number> lub 5% do 100% |
5% |
Ustawia twardy próg eksmisji dla węzłów wolnych węzłów inode. |
softEvictionThreshold.memoryAvailable |
Pusty ciąg; <number>Ki, lub <number>Mi<number>Gi z co najmniej 100Mi; lub 2% do100% |
None. W przypadku wzmacniania zabezpieczeń węzłów: 500Mi dla węzłów z 8 GiB pamięci lub mniej, 750Mi dla węzłów z więcej niż 8 GiB i mniej niż 32 GiB, a 1Gi dla węzłów z 32 GiB lub więcej |
Ustawia próg miękkiej eksmisji dla dostępnej pamięci. Wartość musi być większa niż wartość efektywna hardEvictionThreshold.memoryAvailable . |
softEvictionThreshold.nodeFsAvailable |
Pusty ciąg; <number>Ki, , <number>Gi<number>Milub 10% do100% |
12% gdy włączono wzmacnianie zabezpieczeń węzłów; Brak w przeciwnym razie |
Ustawia próg miękkiej eksmisji dla dostępnego miejsca w systemie plików węzła. Wartość musi być większa niż wartość efektywna hardEvictionThreshold.nodeFsAvailable . |
softEvictionThreshold.nodeFsInodesFree |
Pusty ciąg; <number> lub 5% do 100% |
7% gdy włączono wzmacnianie zabezpieczeń węzłów; Brak w przeciwnym razie |
Ustawia próg miękkiej eksmisji dla nietrwałych węzłów inode systemu plików węzła. Wartość musi być większa niż wartość efektywna hardEvictionThreshold.nodeFsInodesFree . |
softEvictionGracePeriod.memoryAvailable |
Pusty ciąg lub czas trwania stylu języka Go co najmniej 30s przy użyciu nswartości , , usms, s, mlubh |
30s gdy włączono wzmacnianie zabezpieczeń węzłów; Brak w przeciwnym razie |
Określa, jak długo musi zostać przekroczony próg miękkiej memoryAvailable eksmisji przed eksmitami kubeletu. |
softEvictionGracePeriod.nodeFsAvailable |
Pusty ciąg lub czas trwania stylu języka Go co najmniej 30s przy użyciu nswartości , , usms, s, mlubh |
2m gdy włączono wzmacnianie zabezpieczeń węzłów; Brak w przeciwnym razie |
Określa, jak długo musi zostać przekroczony próg miękkiej nodeFsAvailable eksmisji przed eksmitami kubeletu. |
softEvictionGracePeriod.nodeFsInodesFree |
Pusty ciąg lub czas trwania stylu języka Go co najmniej 30s przy użyciu nswartości , , usms, s, mlubh |
2m gdy włączono wzmacnianie zabezpieczeń węzłów; Brak w przeciwnym razie |
Określa, jak długo musi zostać przekroczony próg miękkiej nodeFsInodesFree eksmisji przed eksmitami kubeletu. |
evictionMaxPodGracePeriodInSeconds |
0 lub większa | 60 po włączeniu wzmacniania zabezpieczeń węzła; 0 w przeciwnym razie |
Ustawia maksymalną liczbę sekund, przez które narzędzie kubelet umożliwia zakończenie zasobników podczas miękkiej eksmisji. |
Konfiguracja niestandardowa Windows Kubelet
| Parametr | Dozwolone wartości/interwał | Domyślny | Description |
|---|---|---|---|
imageGcHighThreshold |
0–100 | 85 | Procent użycia dysku, po osiągnięciu którego usuwanie zbędnych obrazów jest zawsze uruchamiane. Minimalne użycie dysku, które wyzwala odśmiecanie pamięci. Aby wyłączyć zbieranie nieużywanych obrazów, ustaw wartość na 100. |
imageGcLowThreshold |
0–100, nie wyższe niż imageGcHighThreshold |
80 | Procent użycia dysku, poniżej którego nigdy nie jest uruchamiane czyszczenie nieużywanych danych obrazu. Minimalne użycie dysku, które może wyzwalać zbieranie śmieci. |
containerLogMaxSizeMB |
Rozmiar w megabajtach (MB) | 10 | Maksymalny rozmiar (na przykład 10 MB) pliku dziennika kontenera przed jego obróceniu. |
containerLogMaxFiles |
2 lub większe | 5 | Maksymalna liczba plików dziennika kontenera do zachowania dla kontenera. |
Niestandardowe parametry konfiguracji systemu operacyjnego Linux
Ważna
Aby uprościć wyszukiwanie i czytelność, ustawienia systemu operacyjnego są wyświetlane w tym artykule według ich nazwy, ale należy je dodać do pliku JSON konfiguracji lub interfejsu API AKS, używając konwencji zapisu camelCase.
Jeśli na przykład zmodyfikujesz vm.max_map_count to ustawienie, należy go ponownie sformatować vmMaxMapCount w pliku JSON konfiguracji.
Limity obsługi plików systemu Linux
W przypadku obsługi dużych ilości ruchu ruch ten często pochodzi z dużej liczby plików lokalnych. Możesz dostosować następujące ustawienia jądra i wbudowane limity, aby pozwolić na obsługę większej liczby zadań, kosztem zużycia większej ilości pamięci systemowej.
W poniższej tabeli wymieniono limity obsługi plików, które można dostosować dla puli węzłów:
| Ustawienie | Dozwolone wartości/interwał | Domyślna wersja ubuntu 22.04 | Domyślna wersja ubuntu 24.04 | Domyślna wersja Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | Maksymalna liczba dojść do plików przydzielanych przez jądro systemu Linux. Ta wartość jest ustawiona na maksymalną możliwą wartość (2^63-1), aby zapobiec wyczerpaniu deskryptora plików i zapewnić nieograniczone dojścia do plików dla konteneryzowanych obciążeń. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | Maksymalna liczba obserwacji plików dozwolona przez system. Każda obserwacja zajmuje około 90 bajtów na 32-bitowym jądrze i około 160 bajtów na 64-bitowym jądrze. |
fs.aio-max-nr |
65536 - 6553500 | 65536 | 65536 | 65536 | Aio-nr pokazuje bieżącą liczbę asynchronicznych żądań we/wy dla całego systemu. aio-max-nr umożliwia zmianę maksymalnej wartości, do której aio-nr może wzrosnąć. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | Maksymalna liczba dojść do plików, które może przydzielić proces. |
Note
Parametr fs.file-max jest ustawiony na 9223372036854775807 (maksymalna wartość liczby całkowitej ze znakiem 64-bitowej) w systemach Ubuntu i Azure Linux na podstawie wartości domyślnych pochodzących z upstream. Ta konfiguracja:
- Zapobiega atakom typu "odmowa usługi " na podstawie wyczerpania deskryptora plików całego systemu.
- Zapewnia, że obciążenia kontenerów nigdy nie są ograniczane przez limity uchwytów plików dla całego systemu.
-
Utrzymuje bezpieczeństwo za pośrednictwem limitów poszczególnych procesów (
fs.nr_openiulimit), które nadal mają zastosowanie do poszczególnych procesów. - Optymalizuje platformy kontenerów , na których wiele kontenerów może być uruchamianych jednocześnie, z których każdy potencjalnie otwiera wiele plików i połączeń sieciowych.
Dostrajanie gniazd systemu Linux i sieci
W przypadku węzłów agenta, które mają obsługiwać dużą liczbę współbieżnych sesji, można użyć następujących opcji TCP i sieci i dostosować je dla puli węzłów.
| Ustawienie | Dozwolone wartości/interwał | Domyślna wersja ubuntu 22.04 | Domyślna wersja ubuntu 24.04 | Domyślna wersja Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | 16384 | 16384 | Maksymalna liczba żądań połączeń, które można kolejkować dla dowolnego gniazda nasłuchiwania. Górny limit wartości parametru listy prac przekazany do funkcji listen(2). Jeśli argument backlogu jest większy niż somaxconn, jest bez ostrzeżenia obcięty do tego limitu. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | Maksymalna liczba pakietów w kolejce po stronie WEJŚCIA, gdy interfejs odbiera pakiety szybciej niż jądro może je przetworzyć. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | Maksymalny rozmiar buforu gniazda odbioru w bajtach. |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | Maksymalny rozmiar buforu gniazda wysyłania w bajtach. |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | Maksymalny rozmiar buforu pomocniczego (bufor pamięci opcji) dozwolony na gniazdo. Pamięć opcji gniazda jest używana w kilku przypadkach do przechowywania dodatkowych struktur związanych z użyciem gniazda. |
net.ipv4.tcp_max_syn_backlog |
128 - 3240000 | 16384 | 16384 | 16384 | Maksymalna liczba żądań połączeń w kolejce, które nie otrzymały potwierdzenia od klienta łączącego. Jeśli ta liczba zostanie przekroczona, jądro zacznie odrzucać żądania. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | Maksymalna liczba TIME-WAIT gniazd przechowywanych przez system jednocześnie. Jeśli ta liczba zostanie przekroczona, gniazdo oczekiwania czasowego zostanie natychmiast zniszczone i zostanie wyświetlone ostrzeżenie. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | Czas, przez jaki połączenie oddzielone (nie przywoływane przez dowolną aplikację) pozostaje w stanie FIN_WAIT_2, zanim zostanie przerwane na końcu lokalnym. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | Jak często TCP wysyła wiadomości, gdy keepalive jest włączone? |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | Ile sond TCP wysyła, zanim uzna, że połączenie jest przerwane. |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | Jak często są wysyłane sondy. Pomnożone przez tcp_keepalive_probes określa czas potrzebny na zakończenie połączenia, które nie odpowiada, po rozpoczęciu wysyłania sond. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | Umożliwia ponowne użycie TIME-WAIT gniazd dla nowych połączeń, gdy jest bezpieczne z punktu widzenia protokołu. |
|
net.ipv4.ip_local_port_range |
Pierwszy: 1024 - 60999 i Ostatni: 32768 - 65535] | Pierwsze: 32768 i ostatnie: 60999 | Pierwsze: 32768 i ostatnie: 60999 | Pierwsze: 32768 i ostatnie: 60999 | Zakres portów lokalnych używany przez ruch TCP i UDP do wybierania portu lokalnego. Zakres składa się z dwóch liczb: pierwszego portu lokalnego dozwolonego dla ruchu TCP i UDP w węźle agenta oraz ostatniego numeru portu lokalnego. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | Minimalna liczba wpisów, które mogą znajdować się w pamięci podręcznej ARP. Zbieranie śmieci nie jest uruchamiane, jeśli liczba wpisów jest mniejsza niż ta wartość. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | Maksymalna liczba wpisów, które mogą znajdować się w pamięci podręcznej ARP. To ustawienie jest prawdopodobnie najważniejsze, ponieważ odzyskiwanie pamięci ARP wyzwala około 5 sekund po osiągnięciu tego miękkiego maksimum. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | Maksymalna liczba wpisów w pamięci podręcznej ARP. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | Obliczane dynamicznie | Obliczane dynamicznie | Obliczane dynamicznie |
nf_conntrack to moduł, który śledzi wpisy połączenia dla NAT w systemie Linux. Moduł nf_conntrack używa tabeli skrótów do rejestrowania ustanowionego rekordu połączenia protokołu TCP.
nf_conntrack_max to maksymalna liczba węzłów w tabeli skrótów, czyli maksymalna liczba połączeń obsługiwanych przez nf_conntrack moduł lub rozmiar tabeli śledzenia połączeń.
Wartość domyślna jest obliczana dynamicznie na podstawie pamięci systemowej przy użyciu formuły: RAM_in_bytes / 16384 (lub RAM_in_MB * 64). Na przykład maszyna wirtualna z 8 GB pamięci RAM ma domyślnie około 524 288 połączeń. Wartości rzeczywiste różnią się w zależności od rozmiaru maszyny wirtualnej i dostępnej pamięci. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | Obliczane dynamicznie | Obliczane dynamicznie | Obliczane dynamicznie |
nf_conntrack to moduł, który śledzi wpisy połączenia dla NAT w systemie Linux. Moduł nf_conntrack używa tabeli skrótów do rejestrowania ustanowionego rekordu połączenia protokołu TCP. Rozmiar tabeli skrótów to nf_conntrack_buckets.
Wartość domyślna jest obliczana dynamicznie na podstawie pamięci systemowej przy użyciu formuły: RAM_in_bytes / 16384, z co najmniej 1024 zasobnikami i maksymalnie 262 144 zasobnikami. Wartość domyślna nf_conntrack_max jest zazwyczaj ustawiona na nf_conntrack_buckets * 4. Wartości rzeczywiste różnią się w zależności od rozmiaru maszyny wirtualnej i dostępnej pamięci. |
Limity pracowników w systemie Linux
Podobnie jak limity deskryptorów plików, liczba procesów roboczych lub wątków, które można utworzyć, jest ograniczona zarówno przez ustawienie jądra, jak i limity użytkowników. Limit użytkownika w usłudze AKS jest nieograniczony. W poniższej tabeli wymieniono ustawienie jądra, które można dostosować dla puli węzłów:
| Ustawienie | Domyślna wersja ubuntu 22.04 | Domyślna wersja ubuntu 24.04 | Domyślna wersja Azure Linux 3.0 | Description |
|---|---|---|---|---|
kernel.threads-max |
Obliczane dynamicznie | Obliczane dynamicznie | Obliczane dynamicznie | Procesy mogą uruchamiać wątki robocze. Maksymalna liczba wszystkich wątków, które można utworzyć, jest ustawiana przy użyciu ustawienia kernel.threads-maxjądra .
Wartość domyślna jest obliczana dynamicznie na podstawie pamięci systemowej przy użyciu formuły: total_ram_pages / 4 (gdzie każda strona jest zwykle 4 KB). Wartości rzeczywiste różnią się w zależności od rozmiaru maszyny wirtualnej i dostępnej pamięci. |
Pamięć wirtualna systemu Linux
W poniższej tabeli wymieniono ustawienia jądra, które można dostosować dla puli węzłów, aby dostroić działanie podsystemu pamięci wirtualnej (VM) jądra systemu Linux i writeout brudnych danych na dysku:
| Ustawienie | Dozwolone wartości/interwał | Domyślna wersja ubuntu 22.04 | Domyślna wersja ubuntu 24.04 | Domyślna wersja Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | Ten plik zawiera maksymalną liczbę obszarów mapy pamięci, które może mieć proces. Obszary mapy pamięci są używane jako skutek uboczny wywoływania funkcji malloc, bezpośrednio przez mmap, mprotect i madvise, a także podczas ładowania udostępnionych bibliotek. |
|
vm.vfs_cache_pressure |
1 - 100 | 100 | 100 | 100 | Ta wartość procentowa kontroluje tendencję jądra do odzyskania pamięci, która jest używana do buforowania katalogów i obiektów inode. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | Ta kontrolka służy do definiowania, jak agresywnie jądro zamienia strony pamięci. Wyższe wartości zwiększają agresywność, niższe wartości zmniejszają ilość zamiany. Wartość 0 powoduje, że jądro nie inicjuje swap, dopóki liczba wolnych stron i stron opartych na plikach jest mniejsza niż wysoki punkt w strefie. |
swapFileSizeMB |
1 MB — rozmiar dysku tymczasowego (/dev/sdb) | Żadne | Żadne | Żadne | SwapFileSizeMB określa rozmiar w MB pliku wymiany, który ma być utworzony na węzłach agenta z tej puli węzłów. |
transparentHugePageEnabled |
always, madvise, never |
always |
always |
madvise |
Przezroczyste ogromne strony to funkcja jądra systemu Linux przeznaczona do poprawy wydajności poprzez bardziej efektywne wykorzystanie sprzętu do mapowania pamięci procesora. Po włączeniu jądro próbuje przydzielić hugepages zawsze, gdy jest to możliwe, a każdy proces systemu Linux otrzymuje 2-MB strony, jeśli obszar mmap jest naturalnie wyrównany do 2 MB. W niektórych przypadkach, gdy hugepages włączono w całym systemie, aplikacje mogą przydzielać więcej zasobów pamięci. Aplikacja może mmap używać dużego regionu, ale jedynie użyć 1 bajtu. W takim przypadku strona o rozmiarze 2 MB może zostać przydzielona zamiast strony o rozmiarze 4k bez uzasadnienia. W tym scenariuszu można wyłączyć hugepages w całym systemie lub ograniczyć ich działanie tylko do MADV_HUGEPAGE madvise regionów. |
transparentHugePageDefrag |
always, defer, , defer+madvise, madvisenever |
madvise |
madvise |
madvise |
Ta wartość kontroluje, czy jądro powinno agresywnie korzystać z kompaktowania pamięci, aby zwiększyć dostępność hugepages. |