I Linux-baserede systemer som f.eks. RELIANOID apparater, hver netværksforbindelse, socket eller åben fil bruger en filbeskrivelseOperativsystemet håndhæver grænser for antallet af filbeskrivelser, der kan åbnes samtidigt, for at forhindre udtømning af ressourcer.
Hvis en proces når sin filbeskrivelsesgrænse, vil den ikke længere kunne åbne yderligere filer eller sockets, og systemet kan generere fejlen:
For mange åbne filer
Denne tilstand kan påvirke systemets funktionalitet og forårsage, at tjenester holder op med at reagere eller ikke kan oprette nye forbindelser, før den berørte proces eller det berørte system genstartes.
Denne artikel forklarer, hvordan filbeskrivelsesgrænser fungerer i RELIANOID systemer, og hvordan administratorer kan justere dem, når det er nødvendigt.
Sådan fungerer filbeskrivelsesgrænser #
Linux administrerer filbeskrivelser gennem to hovedtyper af begrænsninger:
- Systemdækkende grænser
- Grænser pr. proces
Begge skal konfigureres korrekt for at sikre stabil drift.
Systemomfattende grænser for filbeskrivelser #
Linux-kernen har en global grænse for antallet af filbeskrivelser, der kan allokeres på tværs af hele systemet. Denne værdi styres af kernelparameteren: fs.file-max
Du kan se den aktuelle værdi ved hjælp af:
sysctl fs.file-max
Eksempel output:
fs.file-max = 1000000
Det betyder, at systemet kan allokere op til en million filbeskrivelser i alt. Hvis denne grænse nås, kan nye filreferencer ikke oprettes, før eksisterende referencer frigives.
Om nødvendigt kan administratorer midlertidigt øge værdien ved hjælp af:
sysctl -w fs.file-max=2000000
For at gøre ændringen vedvarende på tværs af genstarter, skal du tilføje parameteren til: /etc/sysctl.conf
Eksempel:
fs.file-max = 2000000
Anvend konfigurationen med:
sysctl -s
Grænser for filbeskrivelser pr. proces #
Ud over den globale systemgrænse har hver proces også sin egen grænse for antallet af åbne filer, den kan håndtere. Denne grænse styres ved hjælp af ulimit.
Du kan tjekke den aktuelle grænse med:
ulimit -n
Eksempel output:
100000
Dette indikerer, at en enkelt proces kan åbne op til 100,000 filbeskrivelser.
Hvis en proces når denne grænse, vil den generere "For mange åbne filer" fejl, selvom den systemomfattende grænse stadig er tilgængelig.
Filbeskrivelsesgrænser i RELIANOID #
RELIANOID tjenester indlæser deres grænser for filbeskrivelser pr. proces fra følgende konfigurationsfil:
/etc/profile/relianoid.sh
Dette sikrer det RELIANOID Komponenter kører med de nødvendige begrænsninger for at håndtere et stort antal netværksforbindelser.
Imidlertid Tredjepartsprocesser, der kører på det samme system, arver muligvis ikke automatisk disse begrænsningerOvervågningsagenter, eksterne værktøjer eller brugerdefinerede tjenester kan derfor opleve udtømning af filbeskrivelser, hvis deres grænser er lavere end nødvendigt.
Justering af grænser for tredjepartsprocesser #
Hvis et tredjepartsprogram kræver højere filbeskrivelsesgrænser, kan de konfigureres i: /etc/security/limits.conf
For eksempel:
* blød nofil 200000 * hård nofil 200000
Denne konfiguration øger det tilladte antal åbne filer for alle brugere.
Alternativt kan begrænsninger anvendes på en specifik bruger:
ncpa blød nofil 200000 ncpa hård nofil 200000
Når du har implementeret ændringerne, skal du genstarte den berørte tjeneste eller proces, så den indlæser de opdaterede grænser.
Konklusion #
"For mange åbne filer" Der opstår en fejl, når en proces når sit maksimalt tilladte antal filbeskrivelser og ikke kan åbne yderligere filer eller netværkssockets. Når denne grænse overskrides, kan tjenester muligvis ikke acceptere nye forbindelser eller fungere normalt.
For at undgå denne tilstand bør administratorer sikre, at både systemomfattende filbeskrivelsesgrænse (fs.file-max) og grænse pr. proces defineret af ulimit er korrekt konfigureret.
In RELIANOID systemer, servicerelaterede grænser indlæses fra /etc/profile/relianoid.shTredjepartsapplikationer, der kører på den samme enhed, kan dog kræve yderligere konfiguration via /etc/security/limits.conf så de arver passende filbeskrivelsesgrænser.
Ved at opretholde tilstrækkelige grænser og gennemgå systemkonfigurationen, når det er nødvendigt, kan administratorer hjælpe med at sikre stabil drift og forhindre serviceafbrydelser i miljøer, der håndterer et stort antal samtidige forbindelser.