Ich habe Ejabberd 15.04 mit Erlang/OTP 17 und Ubuntu [64-Bit] in allen meinen 4 Instanzen von EC2 Amazon, wo ich ejabberd laufen. Ejabberd wurde von der Quelle installiert."Failed TCP akzeptieren: emfile" in Ejabberd
ich es mit 65.535 Filedeskriptoren und die folgende Konfiguration konfiguriert haben:
ERL_MAX_PORTS = 360.000
ERL_PROCESSES = 15.000.000
ERL_MAX_ETS_TABLES = 100.000
Die Sache ist, dass plötzlich die Server funktioniert nicht mehr und ich fand das in den Protokollen, Hunderte von Malen:
2016.05.09 13: 22: 45,901 [Fehler] < 0.397.0> @ejabberd_listener: akzeptieren: 317 (#Port < 0,4197>) konnte nicht TCP akzeptieren: emfile
Ich habe meine eigene Module und laufen aus Ejabberd in einem Cluster von 4 Erlang Knoten, hinter einem Elastic Load Balancer (von Amazon). Die Maschinen haben 4 Kerne und je 30 GB RAM. Ich habe Roster-Modul zu ODBC (MariaDB, ähnlich wie MySQL) migriert. Und 80k Benutzer sind gleichzeitig verbunden.
Ich denke, dass die Datei-Deskriptoren sind hoch genug und erlang Prozesse und Häfen zu. Der Fehler erschien plötzlich, die Server funktionierten für 3 Wochen. Vielleicht hat die Ursache mit MySQL zu tun? Wenn Sie bitte wissen, was die Ursache sein könnte, wäre ich sehr dankbar.
Vielen Dank im Voraus.
Satz nofile (max Anzahl der geöffneten Dateien) in # /etc/security/limits.conf –