GNU/Linux >> Znalost Linux >  >> Linux

Řízení využití systémových zdrojů pomocí příkazu Ulimit

V tomto tutoriálu pro začátečníky se dozvíte o příkazu ulimit v Linuxu. Dozvíte se, jak jej používat k řízení přidělování systémových prostředků.

Co je ulimit v Linuxu?

Ulimit je vestavěný příkaz shellu určený k zobrazení, alokaci a omezení zdrojů. Pro každý systém je nezbytné regulovat tyto typy ovládání.

Tento typ řízení lze vynutit na globální, skupinové a uživatelské úrovni. Kromě zajištění hladkého zpracování úloh zabraňuje nežádoucím procesům, aby mohly pohltit systémové zdroje, jako je RAM a výkon CPU.

Ulimit je propojen s konfiguračním souborem zabezpečení. Vaše přesná poloha se může lišit, ale obvykle je to něco jako /etc/security/limits.conf . Ulimit nám umožňuje tuto konfiguraci rychle upravit.

Měkké vs. tvrdé limity

Jako uživatel můžete ve skutečnosti upravit nastavení ulimit.

Možná se ptáte, proč vůbec nastavovat limit, když si ho může uživatel upravit. Zde vstupují do hry měkké a tvrdé limity.

Takže z pohledu administrátora můžete dát přednost tomu, aby se váš uživatel pohyboval kolem určité hodnoty. Toto by byl váš měkký limit (řekněme 25).

Potom můžete stanovit pevný limit, který by daný uživatel nemohl překročit (50). Uživatel by byl oprávněn zvýšit svůj limit z 25 na 50.

Použití ulimit v Linuxu

Zde je syntaxe příkazu ulimit:

ulimit <options>

Zobrazit všechny limity pro každého uživatele

Všechny druhy limitů pro konkrétního uživatele můžete zobrazit tímto způsobem:

ulimit -a user_name

-a flag zobrazí všechny možnosti a jejich konfiguraci pro vaše konkrétní uživatelské jméno.

Pokud vynecháte uživatelské_jméno, zobrazí se vám limity. Dovolte mi, abych vám ukázal limity nastavené ve výchozím nastavení:

[email protected]:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31503
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31503
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Vaše výchozí hodnoty se samozřejmě mohou lišit od mých. Toto zobrazení zobrazuje popis, přiřazený příznak (který lze použít pro změnu limitů) a konfiguraci.

Zobrazit tvrdé a měkké limity

Je také možné zobrazit kterýkoli z těchto příslušných limitů s příznakem.

Pro zobrazení měkkých limitů použijte volbu -S:

ulimit -S

Pro zobrazení pevných limitů použijte volbu -H:

ulimit -H

Je užitečnější kombinovat je s konkrétními příznaky shora. Pokud tedy chcete zkontrolovat pevný limit maximálního počtu uživatelských procesů, zadejte:

[email protected]:~$ ulimit -Hu
31503

Změnit limity (dočasně)

Nyní změňme tuto hodnotu na 31500 pro demonstrační účely a znovu zkontrolujte pevný limit.

[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500

Stojí za zmínku, že jakékoli změny, které vám vaše oprávnění umožňuje, budou zapsány pouze dočasně a ovlivní váš aktuální shell.

Abych to potvrdil, opustil jsem svůj shell a vytvořil nový terminál a získal původní výchozí hodnotu.

[email protected]:~$ ulimit -Hu
31503

Následující část ukazuje, jak provést změny natrvalo.

Provádění trvalých změn v ulimit

Jak jsem zmínil na začátku článku, ulimit se řídí /etc/security/limits.conf. Pokud chcete provést nějaké trvalé změny v ulimits libovolného uživatele, budete muset provést změny v souboru zabezpečení jako root.

Při úpravách musíte zahrnout tyto čtyři prvky:

<domain> <type> <item> <value>

Zde je text, který jsem připojil k souboru, abych nastavil pevný limit počtu procesů pro uživatele christoper (tj. můj vlastní účet):

christopher    hard    nproc   2000

Mějte na paměti, že je osvědčeným postupem nepovolovat účet root, pokud si plně neuvědomujete možné důsledky. Udělal jsem to na virtuálním počítači, takže to nemusíte dělat sami.

[email protected]:~$ su
Password: 
[email protected]:/home/christopher# nano /etc/security/limits.conf 
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000

Jak můžete vidět, limit pro „christopher“ byl změněn na 20 000.

Jak víte, jaké klíčové slovo použít pro úpravu souboru /etc/security/limits.conf? Zde je tabulka, která obsahuje možná klíčová slova položek a jejich popisy:

Klíčové slovo položky Popis
jádro omezuje velikost souboru jádra (kB)
data maximální velikost dat (kB)
fsize maximální velikost souboru (kB)
memlock maximální adresní prostor uzamčeného v paměti (KB)
nofile maximální počet otevřených deskriptorů souborů
rss maximální velikost rezidentní sady (kB)
zásobník maximální velikost zásobníku (kB)
procesor maximální čas CPU (MIN)
nproc maximální počet procesů
jako limit adresního prostoru (kB)
maxlogins maximální počet přihlášení pro tohoto uživatele
maxsyslogins maximální počet přihlášení do systému
priorita priorita spuštění uživatelského procesu
zámky maximální počet zámků souborů, které může uživatel držet
podpis maximální počet čekajících signálů
msgqueue – maximální množství paměti používané frontami zpráv POSIX (bajty)
pěkné maximální priorita nice může být zvýšena na hodnoty:[-20, 19]
rtprio maximální priorita v reálném čase
chroot změňte kořenový adresář na adresář (specifický pro Debian)
Typ limitu Popis
tvrdé pevný limit
měkké měkký limit
tvrdý i měkký limit

Změnit ulimit pro skupiny

Změna zásad skupiny je velmi podobná té, kterou jste viděli v předchozí části, ale zahrnete @ symbol před názvem skupiny.

Zde je příklad, kdy jsem nastavil maximální počet přihlášení pro studenta skupiny na 4 úpravou souboru /etc/security/limits.conf:

@student    -   maxlogins   4

Závěr

Doufám, že se vám tento rychlý úvod k příkazu ulimit Linux líbil.

Pokud máte nějaké připomínky nebo dotazy, zanechte je níže. Pokud máte nějaké návrhy na témata, která byste rádi viděli, klidně je také zanechte.


Linux
  1. Propojené příkazy s ovládacími operátory v Bash

  2. Převést absolutní symbolický odkaz na relativní symbolický odkaz pomocí jednoduchého příkazu Linux?

  3. Jak řídit využití systémových prostředků pomocí ulimit v Linuxu

  1. Jak monitorovat systém Linux pomocí příkazu Glances

  2. Jak monitorovat využití sítě pomocí nload v Linuxu

  3. Linux Shutdown Command (s příklady)

  1. Date Command v Linuxu s příklady použití

  2. Linux IP příkaz s příklady použití

  3. Linux Uptime Command s příklady