GNU/Linux >> Znalost Linux >  >> Cent OS

Jak se dotazovat a upravovat parametry jádra pomocí sysctl (okamžitě a trvale) v CentOS / RHEL

Účelem tohoto příspěvku je vysvětlit, jak nakonfigurovat parametry jádra na systémech Red Hat (RHEL/CentOS) a Oracle Linux (OL) pomocí nástroje sysctl. Obslužný program sysctl (/sbin/sysctl) umožňuje (privilegovaným) uživatelům dotazovat se a upravovat parametry jádra za běhu. Tento nástroj je společný pro většinu distribucí Linuxu, mezi distribucemi však mohou existovat jemné rozdíly, např. RHEL/OL a SuSE. Parametry, které lze zobrazit/upravit, jsou ty, které jsou vystaveny prostřednictvím souborového systému procfs /proc/sys. Při nastavování v konfiguračním souboru se používá notace tečka(.“).

Dotaz na konkrétní parametr jádra

Chcete-li se dotázat na pojmenovanou hodnotu parametru jádra, spusťte obslužný program sysctl s buď „-n ‘ nebo vůbec žádné argumenty, např.:

# sysctl kernel.shmmax
kernel.shmmax = 68719476736
# sysctl -n kernel.shmmax
68719476736

Ve výše uvedeném příkladu se parametr kernel.shmmax vztahuje k /proc/sys/kernel/shmmax, např.:

# cat /proc/sys/kernel/shmmax
68719476736

Dotaz na všechny parametry jádra

Chcete-li se dotazovat na všechny hodnoty parametrů jádra, spusťte obslužný program systctl s „-a ‘ argument např.:

# sysctl -a | more
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 4000000
kernel.sched_latency_ns = 20000000
kernel.sched_wakeup_granularity_ns = 4000000
kernel.sched_tunable_scaling = 1

Můžete grep pro konkrétní parametr jádra ve výše uvedeném výstupu. Použijte regulární výrazy pro odfiltrování skupiny parametrů jádra. Například,

# sysctl -a | grep ^kernel.s[h,e]m
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.shm_rmid_forced = 0
kernel.sem = 250	32000	100	128

Okamžité nastavení parametrů jádra (nikoli trvale)

Chcete-li hodnotu parametru sysctl nastavit okamžitě (nikoli trvale), použijte sysctl -w příkaz. Například:

# sysctl -w kernel.sysrq=0
kernel.sysrq = 0

Parametr, který nabývá více hodnot, by měl mít hodnoty uzavřené v uvozovkách. Chcete-li například nastavit net.ipv4.ip_local_port_range na 1025-65535:

# sysctl -w net.ipv4.ip_local_port_range="1025 65535"

Alternativně je možné přenést hodnoty přímo do souboru procfs, který představuje parametr sysctl. Například:

# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo "1025 65535" > /proc/sys/net/ipv4/ip_local_port_range

Trvalé nastavení parametrů jádra

Hodnoty parametrů jádra změněné pomocí metody ‚systctl -w‘ jsou nestálé, tj. ztraceny při restartu serveru. Konfigurační soubor nástroje sysctl, /etc/sysctl.conf , by se měl používat k trvalému ukládání hodnot parametrů jádra, které nejsou výchozí. Soubor je analyzován při spouštění serveru a hodnoty v něm se používají ke konfiguraci jádra. Syntaxe vyžadovaná pro konfiguraci parametrů jádra pomocí souboru /etc/sysctl.conf se řídí zápisem component.parameter=value, např. kernel.shmmax =33554432.
Syntaxe

# vi /etc/sysctl.conf
[component].[parameter]=[value]

Následuje ukázkový soubor /etc/sysctl.conf:

# grep -v ^# /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
....

Spolu s použitím metody 'systctl -w' k úpravě parametrů jádra lze také upravit parametry tak, že je přidáte do souboru /etc/sysctl.conf a poté soubor analyzujete pomocí obslužného programu sysctl s '-p ‘ argument např.:

# sysctl -n kernel.ctrl-alt-del
0
# echo "kernel.ctrl-alt-del=1" >> /etc/sysctl.conf
# sysctl -p
kernel.ctrl-alt-del = 1

Úprava parametrů jádra jejich přidáním do souboru /etc/sysctl.conf je nejen nastaví (sysctl -p), ale také zajistí, že upravené hodnoty přetrvají i po restartu serveru.

Trvalé nastavení parametrů jádra pod CentOS / RHEL 7

Přístup k nastavení parametru jádra pod CentOS/RHEL 7 je trochu jiný než u starší verze. Vytvořte nový soubor conf pod /etc/sysctl.d/ adresář. Názvy souborů mají formát /etc/sysctl.d/[jméno].conf. Soubory v adresáři /etc/sysctl.d/ jsou analyzovány v pořadí, takže se doporučuje přidat před název souboru číslo udávající pořadí, ve kterém chcete soubory analyzovat. Například /etc/sysctl.d/ 01-custom.conf:

# cat /etc/sysctl.d/01-custom.conf
net.ipv4.ip_forward=1
net.ipv4.ip_local_port_range="1025 65535"

Aby systém okamžitě použil hodnoty v novém/aktualizovaném souboru /etc/sysctl.d, spusťte sysctl -p [název souboru]:

# sysctl -p /etc/sysctl.d/01-custom.conf


Cent OS
  1. Jak nainstalovat Python 3.5 na CentOS/RHEL a Fedoru

  2. Jak nakonfigurovat postifx smtp relay v CentOS/RHEL 5 a 6

  3. Jak vytvořit rozhraní Bridge pomocí nmcli v CentOS/RHEL 7 a 8

  1. CentOS / RHEL 7 :Jak nastavit datum, čas / NTP a časové pásmo pomocí timedatectl

  2. CentOS / RHEL 7 :Jak upravit příkazový řádek jádra

  3. Jak vytvořit kontejner LXC pomocí lxcbr0 a virbr0 v CentOS/RHEL

  1. Jak nainstalovat a nakonfigurovat sambu na RHEL 8 / CentOS 8

  2. Jak povolit úložiště EPEL v CentOS a RHEL

  3. Jak zkontrolovat aktuální hodnoty parametrů ladění jádra v CentOS/RHEL