Debian erhöht ulimit für Asterisk

Debian erhöht ulimit für Asterisk

Ich habe ein Problem mit Asterisk 13.11.2 unter Debian 8, bei dem es abstürzt, wenn das Limit der geöffneten Dateien erreicht ist

bridge_channel.c: Can't create pipe! Try increasing max file descriptors with ulimit -n

Ich habe es geschafft, das Limit von 65536 auf 150000 zu erhöhen, indem ich/etc/security/limits.conf

Ich habe folgendes hinzugefügt:

root soft nofile 150000
root hard nofile 150000
* soft nofile 150000
* hard nofile 150000

Das Ergebnis ulimit -nist jetzt 150000

Wenn ich versuche, das Limit für den Asterisk-Prozess zu überprüfencat /proc/xxx/limits

Ich bekomme immer noch das alte Limit!

Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             31945                31945                processes
Max open files            1024                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       31945                31945                signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Wie kann man das lösen?

Antwort1

Entfernen Sie das Kommentarzeichen und ändern Sie den Wert von MAXFILES in /usr/sbin/safe_asterisk

Beispiel: MAXFILES = 150000

Datei speichern und Asterisk neu starten

Erledigt

Antwort2

Ich vermute, dass Ihr System systemd verwendet, das ignoriert /etc/security/limits.conf. Stattdessen müssen Sie diese Grenzen in der Asterisk-Dienstdatei ( /etc/systemd/system/asterisk.serviceoder /lib/systemd/system/asterisk.service) konfigurieren. Sie möchten wahrscheinlich hinzufügen

LimitNOFILE=150000

Beachten Sie, dass Sie die mit Asterisk gelieferte Datei wahrscheinlich nicht bearbeiten möchten, da Sie das Risiko eingehen würden, dass Ihre Änderungen beim nächsten Asterisk-Update überschrieben werden. Stattdessen würde ich empfehlen, eine Datei /etc/systemd/system/asterisk.d/10-file-descriptors.confmit der obigen Zeile zu erstellen. Systemd ergänzt dann automatisch die offizielle Servicedatei mit Ihrer Konfiguration.

Antwort3

Setzen Sie folgende Optionen in der asterisk.conf

[options]
internal_timing = no
maxfiles = 999999

Komplette Lösung

verwandte Informationen