Jak nastavit limity pro uživatelské procesy v Linuxu
Jednou z výhod Linuxu je, že na něm můžete ovládat téměř vše. To poskytuje správci systému velkou kontrolu nad svým systémem a lepší využití systémových prostředků.
I když někteří o tom možná nikdy nepřemýšleli, je důležité vědět, že v Linuxu můžete omezit množství zdrojů, které může jeden uživatel používat a na jak dlouho.
Čtěte také: Jak zvýšit limit počtu otevřených souborů v Linuxu
V tomto krátkém tématu si ukážeme, jak omezit počet procesů spouštěných uživatelem a jak kontrolovat aktuální limity a upravovat je.
Než půjdeme dále, musíme upozornit na dvě věci:
- Ke změně uživatelských limitů potřebujete přístup root k vašemu systému
- Pokud plánujete tyto limity upravit, musíte být velmi opatrní
Pro nastavení uživatelských limitů budeme muset upravit následující soubor:
/etc/security/limits.conf
Tento soubor se používá k použití ulimit vytvořeného modulem pam_module.
Soubor má následující syntaxi:
<domain> <type> <item> <value>
Zde se zastavíme a probereme každou z možností:
- Doména – zahrnuje uživatelská jména, skupiny, rozsahy vodítek atd
- Typ – měkké a tvrdé limity
- Položka – položka, která bude omezena – velikost jádra, velikost souboru, nproc atd.
- Hodnota – toto je hodnota pro daný limit
Dobrý vzorek pro limit je:
@student hard nproc 20
Výše uvedený řádek nastavuje pevný limit na maximálně 20 procesů ve skupině "student"
.
Pokud chcete vidět limity určitého procesu, můžete soubor limitů jednoduše „cat“ takto:
cat /proc/PID/limits
Kde PID je skutečné ID procesu, můžete ID procesu zjistit pomocí příkazu ps. Pro podrobnější vysvětlení si přečtěte náš článek, který říká – Najděte spuštěné procesy Linux a nastavte limity procesů na úroveň uživatele
Zde je tedy příklad:
cat /proc/2497/limits
Ukázkový výstup
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 32042 32042 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 32042 32042 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Všechny řádky jsou do značné míry samozřejmé. Pokud však chcete najít více nastavení, která můžete zadat v souboru limits.conf, můžete se podívat do zde poskytnutého manuálu.
Pokud máte nějaké dotazy nebo připomínky, neváhejte je odeslat v sekci komentářů níže.