Wie linux-Datei-Deskriptor-Begrenzungen arbeiten?
Wurde mir gesagt, dass mein server abgelehnt client-Netzwerk-verbindungen auf einem bestimmten port werden konnte aufgrund fehlender Datei-Deskriptoren. Schaute ich nach, was das alles soll und darüber Lesen Sie hier: http://www.netadmintools.com/art295.html
Also getestet habe ich mein system und ich habe diese:
cat /proc/sys/fs/file-nr
1088 0 331287
Was bedeutet das? Mein limit ist Recht hoch, doch habe ich 0 Datei-Deskriptoren definiert? warum? Wie löse ich dieses für meinen server?
In der zweiten Spalte tatsächlich bleibt bei 0, auch nach dem ich Herunterfahren mein server, es noch bleibt bei 0, auch direkt nach einem boot!
Bitte siehe serverfault.com/questions/190435/... -
Sie haben keine neuen Ergebnisse in Bezug auf dein problem? Hat einer von den Antworten helfen?
Sie haben keine neuen Ergebnisse in Bezug auf dein problem? Hat einer von den Antworten helfen?
InformationsquelleAutor erotsppa | 2010-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
You want to look at " /proc/sys/fs/file-max statt
Vom letzten linux/Documentation/sysctl/fs.txt:
EDIT: der zugrunde liegende Fehler ist wahrscheinlich nicht das system läuft out-of-global filedescriptors, sondern nur Ihren Prozess. Es scheint wahrscheinlich, dass das das problem ist das maximale Größe der wählen Sie.
InformationsquelleAutor wnoise
Es nicht so Aussehen, wie Sie auf die system-Datei desriptor begrenzen. Lesen Sie diese Antwort.
Vielleicht ist Ihr server-Prozess verwendet
select
und beschränkt sich somit auf 1024 Deskriptoren? Wenn Sie wechseln Sie zu einem anderen Mechanismus, z.B.poll
Sie werden nicht beschränkt auf 1024 Deskriptoren mehr.select()
arbeitet mitfd_set
sDies ist aus der POSIX-Dokumentation wählen.h:
Versuchen zu finden oder Ausgang
FD_SETSIZE
auf Ihrem system.Wenn Sie finden FD_SETSIZE ist zu niedrig für Sie, ich würde lieber versuchen, sich von
select
als zu versuchen zu erhöhenFD_SETSIZE
ist in der Regel schwieriger.hat nichts zu tun mit FD_SETSIZE
Ich habe gesehen, schlagen die FD_SETSIZE in-Server verwenden wählen Sie immer wieder. Bitte erklären Sie, was passiert, erotsppa Ihre Meinung.
InformationsquelleAutor Peter G.
Welche Fehler sind Sie immer von accept() unter diesen Umständen? Prüfen Sie Fehlercode und melde es entsprechend.
Entsprechend der Mann-Seite, akzeptieren() EMFILE oder ENFILE wenn die pro Prozess oder die gesamten Datei-Deskriptor-Grenze erreicht, wäre es hilfreich zu wissen, welche (oder ob es etwas anderes war).
Es ist ein pro-Prozess-Datei-Deskriptor-Grenze, die oft auf 1024 festgelegt - kann aber leicht erhöht werden.
InformationsquelleAutor MarkR