Hoe ulimit en file descriptors limiet in te stellen op Linux Servers

Inleiding: uitdagingen zoals het aantal geopende bestanden in een van de productie-omgeving is nu een dag gemeenschappelijk geworden. Omdat veel toepassingen die Java en Apache gebaseerd zijn, worden geïnstalleerd en geconfigureerd, wat kan leiden tot te veel open bestanden, bestandsbeschrijvingen etc. Als dit de standaard limiet overschrijdt die is ingesteld, dan kan men geconfronteerd met toegangscontrole problemen en het openen van bestanden uitdagingen. Veel productieomgevingen komen hierdoor tot stilstand.

ulimit-number-openfiles-linux-server

gelukkig hebben we “ulimit” commando in een van de Linux gebaseerde server, waarmee men kan zien/set/get aantal bestanden open status / configuratie details. Dit commando is uitgerust met vele opties en met deze combinatie kan men het aantal geopende bestanden instellen. Hieronder volgen stap-voor-stap commando ‘ s met voorbeelden in detail uitgelegd.

om te zien wat de huidige limiet voor open bestanden is in elk Linux systeem

om de limiet voor open bestanden op elke Linux server te krijgen, voer je het volgende commando uit:

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

het bovenstaande getal geeft aan dat de gebruiker ‘146013’ bestand kan openen per gebruiker login sessie.

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

Dit geeft duidelijk aan dat individuele Linux-besturingssystemen een verschillend aantal open bestanden hebben. Dit is gebaseerd op afhankelijkheden en toepassingen die worden uitgevoerd in de respectieve systemen.

ulimit-opdracht :

zoals de naam al doet vermoeden, wordt ulimit (gebruikerslimiet) gebruikt om resources limit weer te geven en in te stellen voor ingelogde gebruiker.Wanneer we ulimit commando uitvoeren met-A optie dan zal het de limiet van alle bronnen afdrukken voor de ingelogde gebruiker. Laten we nu “ulimit-a” draaien op Ubuntu / Debian en CentOS Systemen,

Ubuntu / Debian systeem,

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 systeem

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

zoals we hier kunnen zien hebben verschillende OS verschillende limieten ingesteld. Al deze limieten kunnen worden geconfigureerd/gewijzigd met het “ulimit” Commando.

om de individuele bronlimiet weer te geven en vervolgens de individuele parameter in ulimit-opdracht door te geven, worden enkele parameters hieronder vermeld:

  • ulimit –n- > Het toont het aantal geopende bestanden limiet
  • ulimit –c- > Het toont de grootte van core –bestand
  • umilit-u – > Het toont de maximale gebruikersproces limiet voor de ingelogde gebruiker.
  • ulimit –f – > Het toont de maximale bestandsgrootte die de gebruiker kan hebben.
  • umilit –m – > Het toont de maximale geheugengrootte voor ingelogde gebruiker.
  • ulimit-v – > Het toont de maximale geheugengrootte limiet

Gebruik onderstaande commando ’s Controleer harde en zachte limieten voor het aantal geopende bestanden voor de ingelogde gebruiker

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

hoe het probleem op te lossen wanneer limiet op het aantal maximale bestanden werd bereikt ?

laten we aannemen dat onze Linux server de limiet van het maximum aantal open bestanden heeft bereikt en dat we die limiet systeem breed willen uitbreiden, bijvoorbeeld we willen 100000 instellen als limiet van het aantal open bestanden.

gebruik sysctl-opdracht om fs door te geven.bestand-max parameter voor kernel on the fly, voer onder commando uit als root gebruiker,

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

bovenstaande wijzigingen zullen actief zijn tot de volgende herstart, dus om deze wijzigingen blijvend te maken over de herstart, bewerk het bestand /etc/sysctl.conf en voeg dezelfde parameter toe,

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

opslaan en afsluiten van bestand,

voer het onderstaande commando uit om bovenstaande wijzigingen onmiddellijk uit te voeren zonder af te loggen en opnieuw op te starten.

root@ubuntu~]# sysctl -p

Controleer nu of nieuwe wijzigingen van kracht zijn of niet.

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

Gebruik onderstaande opdracht om uit te vinden hoeveel bestandsdescriptoren momenteel worden gebruikt:

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

opmerking:- Commando” sysctl-p ” wordt gebruikt om de wijzigingen vast te leggen zonder opnieuw op te starten en af te melden.

stel de bronlimiet op gebruikersniveau in via limiet.conf bestand

” / etc / sysctl.conf ” bestand wordt gebruikt om resource limit systeem breed in te stellen, maar als u wilt instellen resource limit voor specifieke gebruiker zoals Oracle, MariaDB en Apache dan kan dit worden bereikt via “/etc/security/limits.conf ‘ file.

Monstergrens.conf hieronder is weergegeven

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

Beperkingen-conf-linux-deel 1

Beperkingen-conf-linux-part2

Laten we aannemen dat wilt instellen harde en zachte limiet op het aantal open bestanden voor linuxtechi gebruiker en voor oracle user set harde en zachte limiet op het aantal open proces, bewerk het bestand “/etc/security/grenzen.conf “en voeg de volgende regels toe

# 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

Save & het bestand Afsluiten.

opmerking: In het geval dat u wilt resource limit op een groep in plaats van gebruikers, dan kan het ook mogelijk zijn via limit.conf-bestand, in plaats van de gebruikersnaam , typ @<Group_Name> en de rest van de items zal hetzelfde zijn, voorbeeld wordt hieronder getoond,

# 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

Controleer of nieuwe wijzigingen van kracht zijn of niet,

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

opmerking: een ander belangrijk gebruikt commando is “lsof” dat wordt gebruikt om uit te vinden “hoeveel bestanden er momenteel geopend zijn”. Dit commando is zeer nuttig voor beheerders.

conclusie:

zoals vermeld in de inleiding sectie “ulimit” commando is zeer krachtig en helpt men te configureren en ervoor te zorgen applicatieinstallaties soepeler zijn zonder enige knelpunten. Dit commando helpt bij het oplossen van veel van het aantal bestandsbeperkingen in Linux gebaseerde servers.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.