Hvordan øke antall åpne filer i Linux
I Linux kan du endre maksimalt antall åpne filer. Du kan endre dette nummeret ved å bruke ulimit-kommandoen. Det gir deg muligheten til å kontrollere ressursene som er tilgjengelige for skallet eller prosessen startet av det.
Les også: Sett grenser for Linux-løpende prosesser på per-brukernivå
I denne korte opplæringen vil vi vise deg hvordan du sjekker gjeldende grense for åpne filer og filbeskrivelser, men for å gjøre det, må du ha root-tilgang til systemet ditt.
Først, la oss se hvordan vi kan finne ut det maksimale antallet åpnede filbeskrivelser på Linux-systemet ditt.
Finn Linux Open File Limit
Verdien er lagret i:
cat /proc/sys/fs/file-max
818354
Nummeret du vil se, viser antall filer som en bruker kan ha åpnet per påloggingsøkt. Resultatet kan være forskjellig avhengig av systemet ditt.
For eksempel på en CentOS-server av meg ble grensen satt til 818354, mens standardgrensen var på Ubuntu-serveren som jeg kjører hjemme. satt til 176772.
Hvis du vil se de harde og myke grensene, kan du bruke følgende kommandoer:
Sjekk Hard Limit i Linux
ulimit -Hn
4096
Sjekk myke grenser i Linux
ulimit -Sn
1024
For å se de harde og myke verdiene for forskjellige brukere, kan du ganske enkelt bytte bruker med “su” til brukeren som grenser du vil sjekke.
For eksempel:
su marin
ulimit -Sn
1024
ulimit -Hn
4096
Hvordan sjekke systemomfattende filbeskrivelsesgrenser i Linux
Hvis du kjører en server, kan noen av programmene dine kreve høyere grenser for åpnede filbeskrivelser. Et godt eksempel på slike er MySQL/MariaDB-tjenester eller Apache-nettserver.
Du kan øke grensen for åpne filer i Linux ved å redigere kjernedirektivet fs.file-max
. For det formålet kan du bruke sysctl-verktøyet.
Sysctl brukes til å konfigurere kjerneparametere under kjøring.
For å øke grensen for åpne filer til 500000, kan du for eksempel bruke følgende kommando som root:
sysctl -w fs.file-max=500000
Du kan sjekke gjeldende verdi for åpnede filer med følgende kommando:
cat /proc/sys/fs/file-max
Med kommandoen ovenfor vil endringene du har gjort bare forbli aktive til neste omstart. Hvis du ønsker å bruke dem permanent, må du redigere følgende fil:
vi /etc/sysctl.conf
Legg til følgende linje:
fs.file-max=500000
Selvfølgelig kan du endre nummeret etter dine behov. For å bekrefte endringene igjen, bruk:
cat /proc/sys/fs/file-max
Brukere må logge ut og logge på igjen for at endringene skal tre i kraft. Hvis du vil bruke grensen umiddelbart, kan du bruke følgende kommando:
sysctl -p
Angi grenser for åpne fil på brukernivå i Linux
Eksemplene ovenfor viste hvordan man setter globale grenser, men det kan være lurt å bruke grenser per brukerbasis. For det formålet, som brukerrot, må du redigere følgende fil:
vi /etc/security/limits.conf
Hvis du er en Linux-administrator, foreslår jeg at du blir godt kjent med den filen og hva du kan gjøre med den. Les alle kommentarene i den da den gir stor fleksibilitet når det gjelder å administrere systemressurser ved å begrense brukere/grupper på ulike nivåer.
Linjene du bør legge til har følgende parametere:
<domain> <type> <item> <value>
Her er et eksempel på å sette myke og harde grenser for brukeren marin:
## Example hard limit for max opened files
marin hard nofile 4096
## Example soft limit for max opened files
marin soft nofile 1024
Siste tanker
Denne korte artikkelen viste deg et grunnleggende eksempel på hvordan du kan sjekke og konfigurere globale grenser og grenser på brukernivå for maksimalt antall åpnede filer.
Mens vi nettopp skrapet på overflaten, oppfordrer jeg deg til å se og lese mer detaljert om /etc/sysctl.conf og /etc/security/limits.conf og lære hvordan du bruker dem. De vil være til stor hjelp for deg en dag.