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.