Debian 增加了 Asterisk 的 ulimit

Debian 增加了 Asterisk 的 ulimit

我在 Debian 8 上遇到了 Asterisk 13.11.2 的问题,它在达到打开文件的限制后崩溃

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

我已成功使用以下命令将限制从 65536 增加到 150000/etc/security/limits.conf

我添加了以下内容:

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

现在的结果ulimit -n是 150000

当我尝试检查星号进程的限制时cat /proc/xxx/limits

我仍然得到旧的限制!

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

如何解决这个问题?

答案1

取消注释并更改 /usr/sbin/safe_asterisk 中 MAXFILES 的值

例如:最大文件数 = 150000

保存文件并重新启动星号

完毕

答案2

我怀疑您的系统正在使用忽略/etc/security/limits.conf.相反,您必须在星号服务文件(/etc/systemd/system/asterisk.service/lib/systemd/system/asterisk.service)中配置这些限制。您可能想添加

LimitNOFILE=150000

请注意,您可能不想编辑 Asterisk 附带的文件,因为您可能会遇到更改被下一次 Asterisk 更新覆盖的风险。相反,我建议使用/etc/systemd/system/asterisk.d/10-file-descriptors.conf上面的行创建一个文件。然后 Systemd 将自动使用您的配置来扩充官方服务文件。

答案3

在 asterisk.conf 中设置以下选项

[options]
internal_timing = no
maxfiles = 999999

完整的解决方案

相关内容