
Jako správce systému Linux někdy možná budete muset upravit chování výchozího jádra. Možná budete muset například povolit magický klíč SysRq nebo zvýšit počet připojení, která bude jádro akceptovat. Parametry jádra lze nastavit při sestavování jádra, při zavádění systému nebo za běhu.
Tento článek vysvětluje, jak používat sysctl
příkaz k zobrazení a úpravě parametrů jádra za běhu.
Použití sysctl
k zobrazení parametrů jádra #
Chcete-li zobrazit všechny aktuální parametry jádra, vyvolejte sysctl
pomocí -a
možnost:
sysctl -a
Výsledkem bude velký seznam, který vypadá asi takto, kde každý řádek obsahuje název parametru a jeho hodnotu:
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...
Všichni uživatelé mohou zobrazit aktuální parametry jádra; pouze uživatel root může upravit jejich hodnoty.
Hodnotu jednoho parametru můžete zkontrolovat předáním jeho názvu jako argumentu do sysctl
. Chcete-li například zkontrolovat aktuální hodnotu swappiness, zadejte:
sysctl vm.swappiness
vm.swappiness = 60
Swappiness je vlastnost linuxového jádra, která definuje, jak často bude systém používat odkládací prostor.
Soubor sysctl
příkaz čte informace z /proc/sys
adresář. /proc/sys
je virtuální adresář, který obsahuje souborové objekty, které lze použít k zobrazení a nastavení aktuálních parametrů jádra.
Hodnotu parametru můžete také zobrazit zobrazením obsahu příslušného souboru. Jediný rozdíl je v tom, jak je soubor reprezentován. Například oba sysctl vm.swappiness
a cat /proc/sys/vm/swappiness
dá stejný výstup. Při použití sysctl
lomítka adresáře jsou nahrazena tečkami a proc.sys
část se předpokládá.
Použití sysctl
k úpravě parametrů jádra #
Chcete-li nastavit parametr jádra za běhu, spusťte sysctl
příkaz následovaný názvem parametru a hodnotou v následujícím formátu:
sysctl -w parameter=value
Pokud hodnota obsahuje prázdné místo nebo speciální znaky, uzavřete hodnotu do dvojitých uvozovek. Můžete také předat více parameter=value
párů ve stejném příkazu.
Chcete-li například povolit předávání paketů IPv4, spustili byste:
sysctl -w net.ipv4.ip_forward=1
Změna se projeví okamžitě, ale není trvalá. Po restartu systému se načte výchozí hodnota.
Chcete-li nastavit parametr trvale, musíte nastavení zapsat do /etc/sysctl.conf
nebo jiný konfigurační soubor v /etc/sysctl.d
adresář:
sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf
Dalším způsobem, jak změnit parametry, je použít echo
příkaz k zápisu nastavení do souborů v /proc/sys
adresář. Například místo spouštění výše uvedeného příkazu můžete použít:
echo 1 > /proc/sys/net/ipv4/ip_forward
-p
umožňuje načíst nastavení z konfiguračního souboru:
sysctl -p /etc/sysctl.d/file_name.conf
Pokud není zadán žádný soubor, sysctl
čte /etc/sysctl.conf
soubor.
Závěr č.
Soubor sysctl
umožňuje prohlížet a měnit parametry linuxového jádra.
Pokud máte nějaké dotazy, neváhejte zanechat komentář.