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.