Kako povećati broj otvorenih datoteka u Linuxu
U Linuxu možete promijeniti maksimalnu količinu otvorenih datoteka. Ovaj broj možete izmijeniti pomoću naredbe ulimit. Omogućuje vam kontrolu nad resursima dostupnim za ljusku ili proces koji je započeo.
U ovom kratkom vodiču pokazat ćemo vam kako provjeriti trenutno ograničenje broja otvorenih datoteka i opise datoteka, ali da biste to učinili, morat ćete imati root pristup svom sustavu.
Prvo, Pogledajmo kako možemo saznati maksimalan broj deskriptora otvorenih datoteka na vašem Linux sustavu.
Pronađite ograničenje otvorene datoteke Linuxa
Vrijednost je pohranjena u:
# cat /proc/sys/fs/file-max 818354
Broj koji ćete vidjeti prikazuje broj datoteka koje je korisnik mogao otvoriti po sesiji prijave. Rezultat se može razlikovati ovisno o vašem sustavu.
Na primjer, na mom CentOS poslužitelju ograničenje je postavljeno na 818354, dok je na Ubuntu poslužitelju koji radim kod kuće zadano ograničenje postavljeno na 176772.
Ako želite vidjeti tvrda i meka ograničenja, možete upotrijebiti sljedeće naredbe:
# ulimit -Hn 4096
# ulimit -Sn 1024
Da biste vidjeli tvrde i meke vrijednosti za različite korisnike, možete jednostavno prebaciti korisnika sa "su" na korisnika koji ograničenja želite provjeriti.
Na primjer:
# su marin $ ulimit -Sn 1024
$ ulimit -Hn 4096
Kako provjeriti ograničenja deskriptora datoteka u sustavu u Linuxu
Ako imate poslužitelj, neke vaše aplikacije mogu zahtijevati veća ograničenja za deskriptore otvorenih datoteka. Dobar primjer za takve su MySQL/MariaDB usluge ili Apache web poslužitelj.
Možete povećati ograničenje otvorenih datoteka u Linuxu uređivanjem direktive jezgre fs.file-max
. U tu svrhu možete koristiti uslužni program sysctl.
Sysctl se koristi za konfiguriranje parametara jezgre tijekom izvođenja.
Na primjer, da biste povećali ograničenje otvorene datoteke na 500000, možete koristiti sljedeću naredbu kao root:
# sysctl -w fs.file-max=500000
Trenutnu vrijednost za otvorene datoteke možete provjeriti sljedećom naredbom:
$ cat /proc/sys/fs/file-max
S gornjom naredbom promjene koje ste napravili ostat će aktivne samo do sljedećeg ponovnog pokretanja. Ako ih želite trajno primijeniti, morat ćete urediti sljedeću datoteku:
# vi /etc/sysctl.conf
Dodajte sljedeći redak:
fs.file-max=500000
Naravno, možete promijeniti broj prema svojim potrebama. Da biste ponovno provjerili promjene, upotrijebite:
# cat /proc/sys/fs/file-max
Korisnici će se morati odjaviti i ponovo prijaviti kako bi promjene stupile na snagu. Ako želite odmah primijeniti ograničenje, možete upotrijebiti sljedeću naredbu:
# sysctl -p
Postavite ograničenja otvorenih datoteka na korisničkoj razini u Linuxu
Gornji primjeri pokazali su kako postaviti globalna ograničenja, ali možda ćete htjeti primijeniti ograničenja po osnovi korisnika. U tu svrhu, kao korijen korisnika, morat ćete urediti sljedeću datoteku:
# vi /etc/security/limits.conf
Ako ste Linux administrator, predlažem vam da se dobro upoznate s tom datotekom i što možete učiniti s njom. Pročitajte sve komentare u njemu jer pruža veliku fleksibilnost u pogledu upravljanja sistemskim resursima ograničavanjem korisnika/grupa na različitim razinama.
Redci koje biste trebali dodati imaju sljedeće parametre:
<domain> <type> <item> <value>
Evo primjera postavljanja mekih i tvrdih ograničenja za marinu korisnika:
## Example hard limit for max opened files marin hard nofile 4096 ## Example soft limit for max opened files marin soft nofile 1024
Završne misli
Ovaj kratki članak pokazao vam je osnovni primjer kako možete provjeriti i konfigurirati globalna i ograničenja na razini korisnika za maksimalni broj otvorenih datoteka.
Iako smo samo ogrebali površinu, toplo vam potičem da detaljnije pogledate i pročitate vezano za /etc/sysctl.conf i /etc/security/limits.conf i naučite kako ih koristiti. Jednog će vam dana biti od velike pomoći.