Puncte:0

Câtă valoare ar trebui să setez pentru a rezolva eroarea Prea multe fișiere deschise pe Nginx?

drapel in

Rulez site-uri web wordpress pe serverul Nginx (v 1.21.6).

Și recent am văzut o eroare ca mai jos.

2022/03/07 19:43:41 [crit] 563445#563445: accept4() a eșuat (24: Prea multe fișiere deschise)
2022/03/07 19:43:42 [crit] 563445#563445: accept4() a eșuat (24: Prea multe fișiere deschise)

Repornesc Nginx, accesul la site funcționează bine.

Și apoi, am căutat pe google pentru a rezolva această problemă, au apărut o mulțime de tutoriale și valori care m-au derutat.

Informațiile despre sistemul meu

ulimit -Hn
1048576
ulimit -Sn
1024

dimensiunea fișierului de bază (blocuri, -c) 0
dimensiunea segmentului de date (kbytes, -d) nelimitat
prioritate de programare (-e) 0
dimensiunea fișierului (blocuri, -f) nelimitată
semnale în așteptare (-i) 7581
memorie maximă blocată (kbytes, -l) 65536
dimensiunea maximă a memoriei (kbytes, -m) nelimitată
deschide fișiere (-n) 1024
dimensiunea conductei (512 octeți, -p) 8
Cozi de mesaje POSIX (octeți, -q) 819200
prioritate în timp real (-r) 0
dimensiunea stivei (kbytes, -s) 8192
timp CPU (secunde, -t) nelimitat
max. procese utilizator (-u) 7581
memorie virtuală (kbytes, -v) nelimitată
blocări de fișiere (-x) nelimitate

Apoi am adăugat următoarele valori la /etc/sysctl.conf.

fs.file-max = 70000

Asta mi-a rezolvat toate problemele?

Dacă nu este cazul, mi-ar plăcea să aud câteva sfaturi dacă ar trebui să adaug o altă setare.

Mulțumesc.

Puncte:0
drapel cn
Bob

Am adăugat următoarele valori la /etc/sysctl.conf.

fs.file-max = 70000

The sysctl comanda este folosită pentru modificare parametrii nucleului în timpul rulării. Poate lua un singur parametru ca argument, de ex. sysctl fs.file-max pentru a citi valoarea curentă a unui parametru sau de exemplu sysctl fs.file-max=98036 pentru a seta acea valoare sau cu sysctl -p /cale/la/fișier citiți parametrii dintr-un fișier.

Fișierul /etc/sysctl.conf (și altele) este fișierul implicit de preîncărcare/configurare pentru parametrii kernelului.

Simpla schimbare a fișierului nu afectează nicio modificare.

Va trebui fie să reporniți, fie să rulați [sudo] sysctl --system pentru a aplica setările modificate acolo.


The ulimit comanda obține/setează limitele resurselor pe care nucleul le impune, pentru un anumit utilizator sau proces.


Deși puteți seta limite de resurse cu ulimit care sunt "nelimitat" sau aparent mai realiste, dar care au totuși o valoare care depășește parametrul nucleului asociat, astfel încât acest lucru nu se va întâmpla.

Sistemul are resurse finite și atunci când există un astfel de parametru al nucleului, acesta va fi limita superioară disponibilă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.