Wie kann ich ein globales Nofile-Limit festlegen, um den Fehler "Viele offene Dateien" zu vermeiden?
Ich habe einen Websocket-Service. Es ist Strage, die Fehler haben: "zu viele offene Dateien", aber ich habe das System konfiguriert:
/etc/security/limits.conf
* soft nofile 65000
* hard nofile 65000
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000
ulimit -n
//output 6500
Also denke ich, dass mein System richtig konfiguriert ist.
Mein Service wird vom Supervisor verwaltet. Ist es möglich, dass der Supervisor Grenzen hat?
Prozessstart durch Supervisor prüfen:
cat /proc/815/limits
Max open files 1024 4096 files
Überprüfen Sie den manuellen Start des Prozesses:
cat /proc/900/limits
Max open files 65000 65000 files
Der Grund dafür ist, dass der Supervisor die Dienste verwaltet. Wenn ich Supervisor neu starte und untergeordneten Prozess neu starte, ist es "max. offene Dateien" in Ordnung (65000), aber falsch (1024), wenn System Supervisor automatisch neu gestartet wird.
Möglicherweise ist die Supervisor-Startstufe zu hoch und die Systemkonfiguration funktioniert nicht, wenn der Supervisor startet.
bearbeiten:
System: Ubuntu 12.04 64bit
Es ist kein Supervisor-Problem, alle automatischen Startvorgänge nach dem Neustart des Systems werden nicht mit Systemkonfiguration ausgeführt (max. Offene Dateien = 1024), aber ein Neustart ist in Ordnung.
aktualisieren
Vielleicht ist das Problem:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/938669http://bryanmarty.com/blog/2012/02/10/setting-nofile-limit-upstart/Erhöhen Sie die maximale Anzahl offener Dateien für Ubuntu / Upstart (initctl)Die Frage ist nun, wie man ein globales Nofile-Limit setzt, weil ich nicht in jedem Upstart-Skript, das ich brauche, ein Nofile-Limit setzen möchte.