Hvordan sette ulimit og filbeskrivelser grense På Linux-Servere

Innledning: Utfordringer som antall åpne filer i noen av produksjonsmiljøet har blitt vanlig nå en dag. Siden mange applikasjoner Som Er Java-baserte Og Apache-baserte, blir installert og konfigurert, noe som kan føre til for mange åpne filer, filbeskrivelser etc. Hvis dette overskrider standardgrensen som er angitt, kan man møte tilgangskontrollproblemer og filåpningsutfordringer. Mange produksjonsmiljøer kommer til å stå stille slags situasjoner på grunn av dette.

ulimit-number-openfiles-linux-server

Heldigvis har Vi» ulimit » – kommandoen i En Hvilken som helst Linux-basert server, hvor man kan se/sett/få antall filer åpne status/konfigurasjonsdetaljer. Denne kommandoen er utstyrt med mange alternativer, og med denne kombinasjonen kan man angi antall åpne filer. Følgende er trinnvise kommandoer med eksempler forklart i detalj.

for å se hva som er den nåværende åpne filgrensen i Et Hvilket Som Helst Linux-System

for å få åpen filgrense på En Hvilken som helst Linux-server, utfør følgende kommando,

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

tallet ovenfor viser at brukeren kan åpne ‘146013’ – fil per brukerinnloggsøkt.

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

dette tyder tydelig på at enkelte Linux-operativsystemer har forskjellig antall åpne filer. Dette er basert på avhengigheter og applikasjoner som kjører i respektive systemer.

ulimit kommando :

som navnet antyder, brukes ulimit (brukerbegrensning) til å vise og angi ressursgrense for innlogget bruker.Når vi kjører ulimit-kommandoen med-a-alternativet, vil det skrive ut alle ressursens grense for den innloggede brukeren. La oss nå kjøre «ulimit-a» På Ubuntu / Debian og CentOS systemer,

Ubuntu/Debian System,

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 System

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

som vi kan se her har FORSKJELLIGE OS forskjellige grenser satt. Alle disse grensene kan konfigureres / endres ved hjelp av» ulimit » kommandoen.

for å vise den enkelte ressursgrense og deretter passere den enkelte parameter i ulimit kommando, noen av parameterne er listet opp nedenfor:

  • ulimit-n –> det viser størrelsen på kjernen fil
  • umilit-u –> det vil vise maksimal brukerprosess grense for den innloggede brukeren.
  • ulimit –f – > det vil vise maksimal filstørrelse som brukeren kan ha.
  • umilit-m – > det vil vise maksimal minnestørrelse for innlogget bruker.
  • ulimit-v –> det vil vise maksimal minnestørrelsesgrense

bruk under kommandoer kontroller harde og myke grenser for antall åpne filer for den innloggede brukeren

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

hvordan løser du problemet når grense På Antall Maksimale Filer ble nådd?

la Oss anta At Vår Linux-server har nådd grensen for maksimalt antall åpne filer og ønsker å utvide det grensesystemet bredt, for eksempel vil vi sette 100000 som grense for antall åpne filer.

Bruk sysctl-kommandoen til å passere fs.fil-max parameter til kjernen på fly, kjøre under kommando som root bruker,

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

over endringene vil være aktiv til neste omstart, så for å gjøre disse endringene vedvarende over omstart, redigere filen / etc / sysctl.conf og legg til samme parameter,

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

lagre og avslutt fil,

Kjør kommandoen under for å gjøre endringer i kraft umiddelbart uten å logge ut og starte på nytt.

root@ubuntu~]# sysctl -p

kontroller nå om nye endringer er i kraft eller ikke.

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

Bruk kommandoen nedenfor for å finne ut hvor mange filbeskrivelser som for tiden brukes:

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

Merk:- Kommandoen «sysctl-p» brukes til å begå endringene uten omstart og utlogging.

Angi ressursgrense På brukernivå via grense.conf fil

» / etc / sysctl.conf «fil brukes til å sette ressursgrense system bredt, men hvis du vil sette ressursgrense for bestemt bruker Som Oracle, MariaDB Og Apache, kan dette oppnås via» / etc / security / limits.conf » fil.

Prøvegrense.conf er vist nedenfor,

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

Limits-conf-linux-part1

Limits-conf-linux-part2

La oss anta at vi ønsker å sette hard og myk grense på antall åpne filer for linuxtechi bruker og for oracle bruker satt hard og myk grense på antall åpne prosessen, redigere filen «/etc/sikkerhet/grenser.conf » og legg til følgende linjer

# 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

Lagre& avslutt filen.

Merk: Hvis du vil sette ressursgrense på en gruppe i stedet for brukere, kan det også være mulig via grense.conf fil , i stedet for brukernavn, type @ <Group_Name> og resten av elementene vil være samme, eksempel er vist nedenfor,

# 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

Kontroller om nye endringer er i kraft eller ikke,

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

merk: andre majorly brukte kommandoen Er «lsof» Som Brukes for å finne ut «hvor mange filer er åpnet for tiden». Denne kommandoen er svært nyttig for admins.

Konklusjon:

som nevnt i introduksjonsdelen «ulimit» kommandoen er veldig kraftig og hjelper en til å konfigurere og sørge for at applikasjonsinstallasjoner er jevnere uten flaskehalser. Denne kommandoen hjelper med å fikse mange av antall filbegrensninger I Linux – baserte servere.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.