Avattujen tiedostojen määrän lisääminen Linuxissa

Linuxissa voit muuttaa avointen tiedostojen enimmäismäärää. Voit muuttaa tätä lukumäärää ulimit-komennolla. Se antaa sinulle mahdollisuuden hallita komentotulkin tai sen käynnistämän prosessin käytettävissä olevia resursseja.

Lue myös: Set Linux Running Processes Limits on Per-Userl Level

Tässä lyhyessä opetusohjelmassa näytämme, miten voit tarkistaa nykyiset avoimien tiedostojen ja tiedostojen kuvausten rajat, mutta sitä varten sinulla on oltava pääkäyttäjän oikeudet järjestelmään.

Katsotaan ensin, miten saamme selville avattujen tiedostokuvausten enimmäismäärän Linux-järjestelmässäsi.

Find Linux Open File Limit

Arvo on tallennettu osoitteeseen:

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

Näyttämäsi luku näyttää tiedostojen lukumäärän, jonka käyttäjä voi avata kirjautumisistunnossa. Tulos voi olla erilainen riippuen järjestelmästäsi.

Esimerkiksi CentOS-palvelimellani raja oli asetettu 818354:ään, kun taas Ubuntu-palvelimella, jota käytän kotona, oletusraja oli asetettu 176772:een.

Jos haluat nähdä kovat ja pehmeät rajat, voit käyttää seuraavia komentoja:

Check Hard Limit in Linux

# ulimit -Hn4096

Check Soft Limits in Linux

# ulimit -Sn1024

Voidaksesi nähdä eri käyttäjien kovat ja pehmeät arvot, voit yksinkertaisesti vaihtaa käyttäjän ”su”-komennolla siihen käyttäjään, jonka rajoja haluat tarkistaa.

Esimerkiksi:

# su marin$ ulimit -Sn1024
$ ulimit -Hn4096

How to Check System wide File Descriptors Limits in Linux

Jos käytät palvelinta, jotkin sovelluksistasi saattavat vaatia korkeampia rajoja avatuille tiedoston kuvaajille. Hyvä esimerkki tällaisista ovat MySQL/MariaDB-palvelut tai Apache-verkkopalvelin.

Voit lisätä avattujen tiedostojen rajaa Linuxissa muokkaamalla ytimen direktiiviä fs.file-max. Tähän tarkoitukseen voit käyttää sysctl-apuohjelmaa.

Sysctl-apuohjelmaa käytetään kernelin parametrien konfigurointiin ajonaikana.

Voit esimerkiksi nostaa avoimien tiedostojen rajan 500000:een seuraavalla komennolla pääkäyttäjänä:

# sysctl -w fs.file-max=500000

Voit tarkistaa avattujen tiedostojen nykyisen arvon seuraavalla komennolla:

$ cat /proc/sys/fs/file-max

Yllä olevalla komennolla tekemäsi muutokset pysyvät aktiivisina vain seuraavaan uudelleenkäynnistykseen asti. Jos haluat soveltaa niitä pysyvästi, sinun on muokattava seuraavaa tiedostoa:

# vi /etc/sysctl.conf

Lisää seuraava rivi:

fs.file-max=500000

Voit tietysti muuttaa numeroa tarpeidesi mukaan. Voit tarkistaa muutokset uudelleen käyttämällä:

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

Käyttäjien on kirjauduttava ulos ja kirjauduttava uudelleen, jotta muutokset tulevat voimaan. Jos haluat soveltaa rajoitusta välittömästi, voit käyttää seuraavaa komentoa:

# sysctl -p

Käyttäjätason avoimien tiedostojen rajoitusten asettaminen Linuxissa

Yllä olevissa esimerkeissä näytettiin, miten globaalit rajoitukset asetetaan, mutta voit halutessasi soveltaa rajoituksia käyttäjäkohtaisesti. Tätä varten sinun on käyttäjän rootina muokattava seuraavaa tiedostoa:

# vi /etc/security/limits.conf

Jos olet Linuxin ylläpitäjä, suosittelen, että tutustut hyvin kyseiseen tiedostoon ja siihen, mitä sille voi tehdä. Lue kaikki siinä olevat kommentit, sillä se tarjoaa suurta joustavuutta järjestelmän resurssien hallinnassa rajoittamalla käyttäjiä/ryhmiä eri tasoilla.

Rivit, jotka sinun tulisi lisätä, ottavat seuraavat parametrit:

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

Tässä on esimerkki pehmeiden ja kovien rajojen asettamisesta käyttäjälle marin:

## Example hard limit for max opened filesmarin hard nofile 4096## Example soft limit for max opened filesmarin soft nofile 1024

Loppuajatuksia

Tässä lyhyessä artikkelissa näytettiin sinulle perustavanlaatuinen esimerkki siitä, miten voit tarkastaa ja konfiguroida globaalin ja käyttäjätason rajoja avattujen tiedostojen maksimimäärää varten.

Vaikka raapaisimme vain pintaa, suosittelen sinua tutustumaan ja lukemaan tarkemmin /etc/sysctl.conf- ja /etc/security/limits.conf-tiedostoista ja oppimaan niiden käytön. Niistä on sinulle jonain päivänä suurta apua.

Vastaa

Sähköpostiosoitettasi ei julkaista.