Kuinka asettaa Ulimit ja tiedostokuvausraja Linux-palvelimille

Johdanto: haasteet kuten avointen tiedostojen määrä missä tahansa tuotantoympäristössä on yleistynyt nyt päivässä. Koska monet sovellukset, jotka ovat Java-pohjaisia ja Apache-pohjaisia, asennetaan ja konfiguroidaan,mikä voi johtaa liian moniin avoimiin tiedostoihin, tiedostokuvaajiin jne. Jos tämä ylittää asetetun oletusrajan, voi edessä olla kulunvalvontaongelmia ja tiedostojen avaamishaasteita. Monet tuotantoympäristöt seisahtuvat tämän vuoksi.

ulimit-number-openfiles-linux-server

onneksi meillä on ”ulimit” – komento missä tahansa Linux-pohjaisessa palvelimessa, josta näkee/set/get number of files open status / configuration details. Tämä komento on varustettu monilla valinnoilla ja tällä yhdistelmällä voidaan asettaa avointen tiedostojen määrä. Seuraavat ovat askel-askeleelta komentoja esimerkkejä selitetty yksityiskohtaisesti.

nähdäksesi, mikä on nykyinen avoimen tiedoston raja missä tahansa Linux-järjestelmässä

saadaksesi avoimen tiedostorajan mille tahansa Linux-palvelimelle, suorita seuraava komento,

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

yllä oleva numero osoittaa, että käyttäjä voi avata ”146013” – tiedoston per käyttäjän kirjautumisistunto.

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

tämä osoittaa selvästi, että yksittäisissä Linux-käyttöjärjestelmissä on eri määrä avoimia tiedostoja. Tämä perustuu riippuvuuksiin ja sovelluksiin, jotka ovat käynnissä vastaavissa järjestelmissä.

ulimitin komento :

kuten nimestä voi päätellä, ulimia (user limit) käytetään kirjautuneen käyttäjän resurssirajan näyttämiseen ja asettamiseen.Kun suoritamme ulimit-komennon-a-vaihtoehdolla, se tulostaa kaikkien resurssien rajan kirjautuneelle käyttäjälle. Nyt ajetaan” ulimit-a”Ubuntu / Debian-ja CentOS-järjestelmissä,

Ubuntu / Debian-järjestelmä,

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-järjestelmä

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

kuten tässä näkyy, eri käyttöjärjestelmillä on erilaiset rajat. Kaikki nämä rajat voidaan määrittää / muuttaa komennolla ”ulimit”.

näyttääkseen yksittäisen resurssirajan ja siirtääkseen sitten yksittäisen parametrin ulimit-komennossa, osa parametreista on lueteltu alla:

  • ulimit –n- > se näyttää avoimien tiedostojen määrän raja
  • ulimit –C- > se näyttää ydintiedoston koon
  • umilit –u – > se näyttää kirjautuneen käyttäjän enimmäiskäyttöprosessirajan.
  • ulimit-f –> se näyttää suurimman tiedostokoon, joka käyttäjällä voi olla.
  • umilit-m –> se näyttää kirjautuneen käyttäjän muistin enimmäiskoon.
  • ulimit-v –> se näyttää muistin enimmäiskoon rajan

käytä alla olevia komentoja tarkista kovat ja pehmeät rajat avoimen tiedoston määrälle kirjautuneelle käyttäjälle

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

miten korjata ongelma, kun Maksimitiedostojen määrän raja saavutettiin ?

oletetaan, että Linux-palvelimemme on saavuttanut avoimien tiedostojen enimmäismäärän rajan ja haluamme laajentaa tätä rajajärjestelmää laajalle, esimerkiksi haluamme asettaa 100000 avoimien tiedostojen määrän rajoitukseksi.

käytä sysctl-komentoa FS: n siirtämiseen.file-max parametri ytimen lennossa, suorita alla komento pääkäyttäjänä,

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

yllä olevat muutokset ovat aktiivisia seuraavaan uudelleenkäynnistykseen asti, joten jotta nämä muutokset pysyvät koko uudelleenkäynnistyksen ajan, Muokkaa tiedostoa/etc / sysctl.conf ja lisää sama parametri,

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

Tallenna ja poistu tiedosto,

Suorita beneath-komento tehdäksesi yllä olevat muutokset voimaan välittömästi ilman sisäänkirjautumista ja uudelleenkäynnistystä.

root@ubuntu~]# sysctl -p

nyt tarkistetaan, ovatko uudet muutokset voimassa vai eivät.

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

käytä alla olevaa komentoa selvittääksesi kuinka monta tiedostokuvausta tällä hetkellä käytetään:

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

Huom:- komentoa ”sysctl-p” käytetään muutosten toimittamiseen ilman uudelleenkäynnistystä ja kirjautumista.

Aseta käyttäjätason resurssiraja limitin kautta.conf-tiedosto

” /etc / sysctl.conf ” tiedostoa käytetään resurssirajan asettamiseen, mutta jos haluat asettaa resurssirajan tietylle käyttäjälle, kuten Oracle, MariaDB ja Apache, tämä voidaan saavuttaa ”/etc/security/limits-toiminnolla.conf ” – tiedosto.

Otosraja.conf on esitetty alla,

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

Limits-conf-linux-part1

Limits-conf-linux-part2

oletetaan, että haluamme asettaa kovan ja pehmeän rajan avaa tiedostoja linuxtechin käyttäjälle ja Oraclen käyttäjälle aseta kova ja pehmeä raja avoimen prosessin määrälle, Muokkaa tiedostoa ”/etc/security/limits.conf ” ja lisätään seuraavat rivit

# 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

Tallenna & poistu tiedostosta.

Huom.: Jos haluat asettaa resurssirajan ryhmälle käyttäjien sijaan, se voi olla mahdollista myös limitin kautta.conf-tiedosto käyttäjänimen sijaan type @<Group_Name> ja muut kohteet ovat samat, esimerkki on alla,

# 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

tarkista, ovatko uudet muutokset voimassa vai eivät,

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

huomautus: toinen merkittävimmin käytetty komento on ”lsof”, jota käytetään selvittämään ”kuinka monta tiedostoa on avattu tällä hetkellä”. Tämä komento on erittäin hyödyllinen ylläpitäjille.

johtopäätös:

kuten johdanto-osassa ”ulimit” mainittu komento on erittäin tehokas ja auttaa konfiguroimaan ja varmistamaan, että sovelluslaitokset ovat sujuvampia ilman pullonkauloja. Tämä komento auttaa korjaamaan monia tiedostojen rajoituksia Linux-pohjaisissa palvelimissa.

Vastaa

Sähköpostiosoitettasi ei julkaista.