Chcę wyłączyć transparent_hugepage (THP) w instancji CentOS 7 EC2, która jest domyślnie włączona:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
To ustawienie można zmienić ręcznie:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
... ale zmiany zostaną utracone po ponownym uruchomieniu.
Próbowałem umieścić echo never [...]
instrukcję w moich rc.local
i cloud.cfg
plikach, ale to nie zadziałało.
Próbowałem również dołączyć ustawienie transparent_hugepage=never
do linii jądra /etc/grub.conf
(jak tam wyjaśniono ), ale nie działało to lepiej.
Więc ... jak mogę wyłączyć THP na CentOS 7 działającym na instancji AWS EC2?
edytuj: zmieniono tytuł ... Muszę wyłączyć THP i defrag THP
amazon-ec2
centos7
grub
Vcarel
źródło
źródło
Odpowiedzi:
Rozwiązanie jest dostrojone , jak wskazał @ michael-hampton. Problem polega na tym, że wtyczka vm może jedynie skonfigurować
/sys/kernel/mm/transparent_hugepage/enabled
ustawienie.Aby również wyłączyć to
/sys/kernel/mm/transparent_hugepage/defrag
ustawienie, musiałem utworzyć skrypt, który będzie wywoływany przez profil przy starcie.Na koniec kompletne rozwiązanie to:
krok 1 : Utwórz katalog do przechowywania profilu niestandardowego:
krok 2 : Utwórz profil
/etc/tuned/custom/tuned.conf
:Zauważ, że ten profil dziedziczy od virtual-guest , który był moim aktywnym profilem, faktycznie wyglądającym odpowiednim dla zwirtualizowanego serwera (EC2). Możesz wyświetlić swój aktywny profil za pomocą polecenia
tuned-adm active
. Jeśli jesteś ciekawy, możesz sprawdzić zawartość predefiniowanych profili w/usr/lib/tuned/
krok 3 : Utwórz skrypt
/etc/tuned/custom/script.sh
:Spraw, by był wykonywalny:
krok 4 : Aktywuj nowy profil:
Teraz powinieneś otrzymać:
Będzie się utrzymywał po ponownym uruchomieniu.
źródło
Oprócz ustawienia wiersza polecenia grub, musisz również skonfigurować dostrojony. Ale nie korzystając z instrukcji, które podałeś, ponieważ są one tak pełne błędów, że wyjaśnienie ich wszystkich zajęłoby pół dnia.
Utwórz niestandardowy dostrojony profil (do którego zadzwonię
custom
), a następnie ustaw profil. Będziesz opierać go na istniejącym profilu, na przykładvirtual-guest
jeśli pracujesz na maszynie wirtualnej (oczywiście EC2) lubthroughput-performance
na komputerze fizycznym.Utwórz katalog do przechowywania profilu niestandardowego:
Utwórz profil niestandardowy
/etc/tuned/custom/tuned.conf
, na przykład:Teraz ustaw profil:
źródło
Spróbuj również tego
źródło
Możesz edytować plik /etc/rc.local i dodać do tego pliku następujące polecenie:
i uruchom,
chmod +x /etc/rc.d/rc.local
aby upewnić się, że skrypt zostanie wykonany podczas rozruchu. testowany na Amazon Linux 2.źródło
EDYCJA: powyższa odpowiedź jest niepoprawna , ponieważ w tym momencie brakuje sysctl przezroczystych, dużych pokręteł strony. Przepraszam za hałas.
Możesz wprowadzić żądane wartości
/etc/sysctl.conf
.Ze strony podręcznika sysctl.conf (5):
źródło