Jak nastavit ulimit a limitu popisovače souborů na Serverech Linux

Úvod: Výzvy, jako je počet otevřených souborů v jakémkoli produkčním prostředí se stalo běžnou teď den. Vzhledem k tomu, že mnoho aplikací založených na Javě a Apache se instaluje a konfiguruje, což může vést k příliš mnoha otevřeným souborům, deskriptorům souborů atd. Pokud toto překročí výchozí limit, který je nastaven, může se jednat o problémy s řízením přístupu a problémy s otevíráním souborů. Mnoho výrobních prostředí se kvůli tomu zastaví.

ulimit-číslo-openfiles-linux-server

Naštěstí, máme „ulimit“ příkaz v kterémkoli z Linuxu na serveru, pomocí níž lze zobrazit/nastavit/získat počet souborů otevřených stav/podrobnosti o konfiguraci. Tento příkaz je vybaven mnoha možnostmi a pomocí této kombinace lze nastavit počet otevřených souborů. Následují podrobné příkazy s příklady podrobně vysvětlenými.

vidět, co je přítomen otevřít soubor s příponou limit v každém Linuxovém Systému,

otevřít soubor limit na každém Linuxovém serveru, spusťte následující příkaz,

# cat /proc/sys/fs/file-max146013

výše uvedené číslo ukazuje, že uživatel může otevřít ‚146013‘ soubor na uživatele přihlašovací relace.

# cat /proc/sys/fs/file-max149219# cat /proc/sys/fs/file-max73906

to jasně ukazuje, že jednotlivé operační systémy Linux mají různý počet otevřených souborů. To je založeno na závislostech a aplikacích, které jsou spuštěny v příslušných systémech.

příkaz ulimit :

jak již název napovídá, ulimit (user limit) slouží k zobrazení a nastavení limitu prostředků pro přihlášeného uživatele.Když spustíme příkaz ulimit s volbou-a, vytiskne limit všech zdrojů pro přihlášeného uživatele. Teď pojďme spustit „ulimit -“ na Ubuntu / Debian a CentOS systémy,

Ubuntu / Debian Systém,

shashi@Ubuntu ~}$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 5731max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024 pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 5731virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited

CentOS Systému,

shashi@centos ~}$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 5901max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 5901virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited

Jak můžeme vidět zde různé OS mají různé limity nastavit. Všechny tyto limity lze nakonfigurovat / změnit pomocí příkazu „ulimit“.

Na zobrazení jednotlivých zdrojů limit pak projít individuální parametr v příkazu ulimit, některé z parametrů jsou uvedeny níže:

  • ulimit -n –> zobrazí počet otevřených souborů limit
  • ulimit -c –> displej velikost základní soubor
  • umilit -u –> To se zobrazí maximální uživatelský proces limit pro přihlášeného uživatele.
  • ulimit-f – > zobrazí maximální velikost souboru, kterou může uživatel mít.
  • umilit-m – > zobrazí maximální velikost paměti pro přihlášeného uživatele.
  • ulimit -v –> zobrazí maximální velikost paměti limit

Použijte níže uvedené příkazy zkontrolovat tvrdé a měkké limity pro počet otevřených souborů pro přihlášeného uživatele

shashi@Ubuntu ~}$ ulimit -Hn1048576shashi@Ubuntu ~}$ ulimit -Sn1024

Jak opravit problém, když limit na Maximální počet Souborů bylo dosaženo ?

předpokládejme, že náš server Linux dosáhl limitu maximální počet otevřených souborů a chcete rozšířit, že limit celého systému, například chceme nastavit 100000 jako limit počtu otevřených souborů.

použijte příkaz sysctl k předání fs.file-max parametr jádra za běhu, spustit pod příkaz jako uživatel root,

root@ubuntu~]# sysctl -w fs.file-max=100000fs.file-max = 100000

Výše uvedené změny budou aktivní až do dalšího restartu, tak, aby se tyto změny trvalé po restartu, upravte soubor /etc/sysctl.conf a přidat stejný parametr,

root@ubuntu~]# vi /etc/sysctl.conffs.file-max = 100000

uložte a ukončete soubor,

Spustit pod příkaz, aby se výše uvedené změny v platnost ihned bez odhlášení a restartujte počítač.

root@ubuntu~]# sysctl -p

nyní ověřte, zda jsou nové změny platné nebo ne.

root@ubuntu~]# cat /proc/sys/fs/file-max100000

Použijte níže uvedený příkaz, aby zjistili, jak mnoho popisovačů souboru jsou v současné době využívány:

# more /proc/sys/fs/file-nr1216 0 100000

na Vědomí:- Příkaz „sysctl -p“ se používá k potvrzení změny bez restartu a odhlášení.

nastavte limit prostředků na úrovni uživatele pomocí limitu.soubor conf

„/etc/sysctl.conf“ soubor je používán pro nastavení limitu prostředků systému široká, ale pokud chcete nastavit zdroj omezení pro konkrétního uživatele, jako jsou Oracle, MariaDB a Apache pak to může být dosaženo prostřednictvím „/etc/security/limits.soubor conf.

limit vzorku.conf je uvedeno níže,

root@ubuntu~]# cat /proc/sys/fs/file-max

Limity-conf-linux-part1

Limity-conf-linux-part2

Předpokládejme, že chceme nastavit hard a soft limit na počet otevřených souborů pro linuxtechi uživatele a pro uživatele oracle nastavit hard a soft limit na počet otevřených procesu, upravit soubor „/etc/security/limits.conf „a přidejte následující řádky

# hard limit for max opened files for linuxtechi userlinuxtechi hard nofile 4096# soft limit for max opened files for linuxtechi userlinuxtechi soft nofile 1024# hard limit for max number of process for oracle useroracle hard nproc 8096# soft limit for max number of process for oracle useroracle soft nproc 4096

Uložit & ukončete soubor.

Poznámka: V případě, že chcete dát limit zdrojů na skupinu místo uživatelů, pak to může být také možné přes limit.conf, v místě, uživatelské jméno , zadejte @<Group_Name> a zbytek položky budou stejné, níže je uveden příklad,

# hard limit for max opened files for sysadmin group@sysadmin hard nofile 4096 # soft limit for max opened files for sysadmin group@sysadmin soft nofile 1024

Ověřte, zda nové změny jsou platné, nebo ne,

~]# su - linuxtechi~]$ ulimit -n -H4096~]$ ulimit -n -S1024~]# su - oracle~]$ ulimit -H -u8096~]$ ulimit -S -u4096

Poznámka: Další majorly používá příkaz „lsof“, který se používá pro zjištění „kolik soubory jsou otevřeny v současné době“. Tento příkaz je velmi užitečný pro administrátory.

závěr:

jak je uvedeno v úvodní části „ulimit“ příkaz je velmi silný a pomáhá jeden konfigurovat a ujistěte se, že instalace aplikací jsou plynulejší bez úzkých míst. Tento příkaz pomáhá při opravě mnoha omezení souborů na serverech založených na Linuxu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.