Vyhledávání na webu

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:

  1. Ke změně uživatelských limitů potřebujete přístup root k vašemu systému
  2. 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.