Jak zmienić parametry środowiska wykonawczego jądra w trwałym i nie-persistowski sposób
- 3536
- 704
- Juliusz Sienkiewicz
W Część 13 z tej serii LFCS (Linux Foundation Certified Sysadmin) wyjaśniliśmy, jak używać Gruba do modyfikacji zachowania systemu, przekazując opcje do jądra w celu ciągłego procesu rozruchu.
Podobnie możesz użyć wiersza poleceń w działającym systemie Linux, aby zmienić niektóre parametry jądra wykonawczego jako jednorazową modyfikację lub na stałe, edytując plik konfiguracyjny.
Dlatego możesz włączyć lub wyłączać parametry jądra w locie bez większego trudności, gdy jest to potrzebne z powodu wymaganej zmiany w sposobie działania systemu.
Wprowadzenie systemu plików /proc
Najnowsza specyfikacja standardu hierarchii systemu plików wskazuje /Proc
Reprezentuje domyślną metodę obsługi procesu i informacji systemowych, a także innych informacji o jądrze i pamięci. W szczególności, /proc/sys
można znaleźć wszystkie informacje o urządzeniach, sterownikach i niektórych funkcjach jądra.
Faktyczna wewnętrzna struktura /proc/sys
zależy w dużej mierze od stosowania jądra, ale prawdopodobnie znajdziesz następujące katalogi w środku. Z kolei każdy z nich będzie zawierał inne podwodniki, w których utrzymywane są wartości dla każdej kategorii parametrów:
dev
: parametry dla określonych urządzeń podłączonych do maszyny.fs
: Konfiguracja systemu plików (na przykład kwoty i inody).- jądro: konfiguracja specyficzna dla jądra.
internet
: konfiguracja sieci.Vm
: użycie wirtualnej pamięci jądra.
Aby zmodyfikować parametry środowiska wykonawczego jądra Sysctl
Komenda. Dokładną liczbę parametrów, które można zmodyfikować, można wyświetlić za pomocą:
# sysctl -a | WC -L
Jeśli chcesz wyświetlić pełną listę parametrów jądra, po prostu zrób:
# sysctl -a
Ponieważ wyjście powyższego polecenia będzie składać się z wielu linii, możemy użyć rurociągu, a następnie mniej, aby go bardziej dokładnie sprawdzić:
# sysctl -a | mniej
Rzućmy okiem na kilka pierwszych linii. Należy pamiętać, że pierwsze znaki w każdym wierszu pasują do nazwisk katalogów w środku /proc/sys
:
Na przykład podświetlona linia:
dev.CDROM.info = Nazwa dysku: SR0
Wskazuje to SR0
jest aliasem napędu optycznego. Innymi słowy, w ten sposób jądro „widzi„Ten napęd i używa tej nazwy, aby się do niej odwołać.
W poniższej sekcji wyjaśnimy, jak zmienić inne „ważniejsze” parametry czasu wykonawczego jądra w Linuksie.
Jak zmienić lub zmodyfikować parametry środowiska wykonawczego jądra Linux
W oparciu o to, co wyjaśniliśmy do tej pory, łatwo jest zobaczyć, że nazwa parametru odpowiada strukturze katalogu w środku /proc/sys
gdzie można go znaleźć.
Na przykład:
dev.CDROM.Autokloza →/proc/sys/dev/cdrom/autoclose net.IPv4.ip_forward →/proc/sys/net/ipv4/ip_forward
Sprawdź parametry jądra Linux
To powiedziawszy, możemy zobaczyć wartość konkretnego parametru jądra Linux za pomocą jednego z nich Sysctl
a następnie nazwa parametru lub odczytu powiązanego pliku:
# sysctl dev.CDROM.Autoklose # cat/proc/sys/dev/cdrom/autoclose # sysctl net.IPv4.ip_forward # cat/proc/sys/net/ipv4/ip_forwardSprawdź parametry jądra Linux
Ustaw lub zmodyfikuj parametry jądra Linux
Aby ustawić wartość dla parametru jądra, którego możemy również użyć Sysctl
, Ale używając -w
opcja, a następnie nazwa parametru, znak równości i żądana wartość.
Inna metoda polega na użyciu Echo
Aby zastąpić plik powiązany z parametrem. Innymi słowy, następujące metody są równoważne funkcjonalność przekazywania pakietów w naszym systemie (który, nawiasem mówiąc, powinien być wartością domyślną, gdy pudełko nie powinno przechodzić ruchu między sieciami):
# echo 0>/proc/sys/net/ipv4/ip_forward # sysctl -w net.IPv4.ip_forward = 0
Należy zauważyć, że ustawione parametry jądra Sysctl
będzie egzekwowane dopiero podczas bieżącej sesji i zniknie po ponownym uruchomieniu systemu.
Aby ustawić te wartości na stałe, edytuj /etc/sysctl.conf
z pożądanymi wartościami. Na przykład, aby wyłączyć przekazywanie pakietów /etc/sysctl.conf Upewnij się, że ta linia pojawia się w pliku:
internet.IPv4.ip_forward = 0
Następnie uruchom następujące polecenie, aby zastosować zmiany w uruchomionej konfiguracji.
# sysctl -p
Inne przykłady ważnych parametrów środowisk wykonawczych to:
fs.Plik-Max
Określa maksymalną liczbę plików obsługuje jądro może przydzielić dla systemu. W zależności od zamierzonego użycia systemu (serwer sieci / bazy danych / plików, aby wymienić kilka przykładów), możesz zmienić tę wartość, aby zaspokoić potrzeby systemu.
W przeciwnym razie otrzymasz „Zbyt wiele otwartych plików”W najlepszym razie komunikat o błędzie i może uniemożliwić system operacyjny uruchomiony w najgorszym.
Jeśli z powodu niewinnego błędu znajdziesz się w tej ostatniej sytuacji, uruchom się w trybie pojedynczego użytkownika (jak wyjaśniono w części 13 - Konfiguruj i rozwiąż rozładowanie Linux Grub Loader) i edytuj /etc/sysctl.conf zgodnie z instrukcją wcześniej. Aby ustawić to samo ograniczenie na zasadzie dla użytkownika, patrz część 14 - Monitoruj i ustaw Linux Limit Użycie tej serii.
jądro.SYSRQ
służy do włączenia SYSRQ Klucz w klawiaturze (znany również jako klawisz ekranu drukowania), aby umożliwić niektórym kombinacjom kluczowym wywoływanie działań awaryjnych, gdy system nie reaguje.
Wartość domyślna (16) wskazuje, że system będzie honorował Klucz Alt+Sysrq+
kombinacja i wykonuj akcje wymienione w SYSRQ.C Dokumentacja znaleziona w jądrze.org (gdzie klucz jest jedną literą w zakresie B-Z). Na przykład, Alt+Sysrq+B
Uruchom ponownie system (użyj tego jako ostateczności, jeśli twój serwer nie reaguje).
Ostrzeżenie! Nie próbuj naciskać tej kombinacji klawisza na maszynie wirtualnej, ponieważ może to zmusić system hosta do ponownego uruchomienia!
Po ustawieniu 1, internet.IPv4.ICMP_OCHO_IGNORE_ALL Zignoruje żądania ping i upuści je na poziomie jądra. Jest to pokazane na poniższym obrazku - Uwaga: po ustawieniu tego parametru jądra zostaną utracone po ustawieniu tego parametru jądra:
Blokuj żądania ping w LinuxLepszym i łatwiejszym sposobem ustawienia poszczególnych parametrów czasu wykonania jest użycie .conf pliki w środku /etc/sysctl.D
, grupowanie ich według kategorii.
Na przykład zamiast ustawienia internet.IPv4.ip_forward = 0 I internet.IPv4.ICMP_OCHO_IGNORE_ALL = 1 W /etc/sysctl.conf, Możemy utworzyć nowy plik wymieniony internet.conf
wewnątrz /etc/sysctl.D:
# Echo „Net.IPv4.ip_forward = 0 "> /etc /sysctl.D/net.conf # echo "net.IPv4.icmp_echo_ignore_all = 1 ">> /etc /sysctl.D/net.conf
Jeśli zdecydujesz się zastosować to podejście, nie zapomnij usunąć tych samych linii z /etc/sysctl.conf
.
Streszczenie
W tym artykule wyjaśniliśmy, jak zmodyfikować parametry środowiska wykonawczego jądra, zarówno trwałe, jak i nie trwałe, używając Sysctl, /etc/sysctl.conf, i pliki w środku /etc/sysctl.D.
w Sysctl Dokumenty można znaleźć więcej informacji na temat znaczenia większej liczby zmiennych. Pliki te stanowią najbardziej kompletne źródło dokumentacji na temat parametrów, które można ustawić za pomocą SYSCTL.
Czy uznałeś ten artykuł przydatny? Z pewnością mamy nadzieję. Nie wahaj się daj nam znać, jeśli masz jakieś pytania lub sugestie do poprawy.
Zostań certyfikowanym administratorem systemu- « Jak ustawić listy kontroli dostępu (ACL) i kwoty dysku dla użytkowników i grup
- LFC Monitorowanie przetwarzania Linux i ustawiaj limity procesu na zasadzie dla użytkownika - Część 14 »