Kuidas suurendada avatud failide arvu Linuxis


Linuxis saate muuta avatud failide maksimaalset mahtu. Seda numbrit saate muuta käsu ulimit abil. See annab teile võimaluse juhtida shellile või sellega alustatud protsessile saadaolevaid ressursse.

Selles lühikeses õpetuses näitame teile, kuidas kontrollida avatud failide ja failide kirjelduste praegust piirangut, kuid selleks peab teil olema juurepääs oma süsteemile.

Kõigepealt vaatame, kuidas saame teada maksimaalse arvu avatud failikirjeldajaid teie Linuxi süsteemis.

Leidke Linux Open File Limit

Väärtus salvestatakse:

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

818354

Number, mida näete, näitab failide arvu, mille kasutaja saab sisselogimisseansi ajal avada. Tulemus võib sõltuvalt teie süsteemist olla erinev.

Näiteks minu CentOS-i serveris määrati piiranguks 818354, samas kui Ubuntu serveris, mida ma kodus käin, oli vaikimisi seatud 176772.

Kui soovite näha rangeid ja pehmeid piire, võite kasutada järgmisi käske:

# ulimit -Hn

4096
# ulimit -Sn

1024

Erinevate kasutajate jaoks kõvade ja pehmete väärtuste nägemiseks võite lihtsalt "su" abil kasutaja vahetada, mis piirab kontrollitavat.

Näiteks:

# su marin
$ ulimit -Sn

1024
$ ulimit -Hn

4096

Kuidas kontrollida kogu süsteemi hõlmavaid failikirjeldajate piire Linuxis

Kui kasutate serverit, võivad mõned teie rakendused nõuda avatud failikirjeldajate jaoks suuremaid piiranguid. Hea näide selliste kohta on MySQL/MariaDB teenused või Apache veebiserver.

Linuxi avatud failide arvu saate suurendada, muutes kerneldirektiivi fs.file-max . Sel eesmärgil saate kasutada utiliiti sysctl.

Rakendust Sysctl kasutatakse tuuma parameetrite seadistamiseks käitusajal.

Näiteks avatud failide limiidi suurendamiseks 500000-ni võite juurena kasutada järgmist käsku:

# sysctl -w fs.file-max=500000

Avatud failide praegust väärtust saate kontrollida järgmise käsuga:

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

Ülaltoodud käsu korral jäävad teie tehtud muudatused aktiivseks ainult järgmise taaskäivitamiseni. Kui soovite neid jäädavalt rakendada, peate muutma järgmist faili:

# vi /etc/sysctl.conf

Lisage järgmine rida:

fs.file-max=500000

Muidugi saate numbrit vastavalt oma vajadustele muuta. Muudatuste uuesti kinnitamiseks kasutage järgmist.

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

Muudatuste jõustumiseks peavad kasutajad uuesti välja logima ja sisse logima. Kui soovite piirangut kohe rakendada, võite kasutada järgmist käsku:

# sysctl -p

Määra Linuxi kasutajataseme avatud faili piirangud

Ülaltoodud näited näitasid, kuidas ülemaailmseid piiranguid seada, kuid võite siiski rakendada piiranguid kasutajate kaupa. Selleks peate kasutajajuurena muutma järgmist faili:

# vi /etc/security/limits.conf

Kui olete Linuxi administraator, soovitan teil selle faili ja selle võimalustega hästi tutvuda. Lugege läbi kõik selles olevad kommentaarid, kuna see pakub süsteemiressursside haldamisel suurt paindlikkust, piirates kasutajaid/rühmi erinevatel tasanditel.

Lisatavatel ridadel on järgmised parameetrid:

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

Siin on näide kasutaja marini pehmete ja rangete piiride seadmisest:

## Example hard limit for max opened files
marin        hard nofile 4096
## Example soft limit for max opened files
marin        soft nofile 1024

Lõpumõtted

See lühike artikkel näitas teile põhinäidet selle kohta, kuidas saate kontrollida ja konfigureerida avatud failide maksimaalse arvu globaalseid ja kasutaja taseme piiranguid.

Kuigi me just pinda kriimustasime, soovitan teil tungivalt üksikasjalikumalt vaadata ja lugeda /etc/sysctl.conf ja /etc/security/limits.conf ning õppida nende kasutamist. Ühel päeval on neist teile palju abi.