Icecast - 太多打开的文件

时间:2017-06-21 22:20:45

标签: centos7 file-descriptor icecast ulimit

我在CentOS 7上运行Icecast 2.4.3服务器。当我有很多听众时,我收到这些错误,一切都停止了工作:

[2017-06-21  18:56:37] WARN connection/_accept_connection accept() failed with error 24: Too many open files

它正在"冰"用户:

sudo -u ices /opt/icecast/bin/icecast -c /opt/icecast/etc/icecast.xml -b

或以" changeowner"以root身份运行选项"冰"用户。

我设置了limits.conf:

ices         hard    nofile      65536
ices         soft    nofile      65536

来自ulimit:

[root@orfeu inweb]# su ices
[ices@orfeu inweb]$ ulimit -n
65536

但是当我检查PID时,我得到:

tcp        0      0 <IP>:8000       0.0.0.0:*               LISTEN      21650/icecast

[root@orfeu inweb]# cat /proc/21650/limits
Limit                     Soft Limit           Hard Limit           Units
...
Max open files            1024                 4096                 files
...

如何修复此问题,以强制执行65536个文件描述符?谢谢。

1 个答案:

答案 0 :(得分:0)

可能我找到了解决方案。需要检查问题何时再次发生。

我意识到limits.conf设置了每个用户的限制。 我找到了一种方法来设置每个进程的限制

/usr/bin/prlimit -n30000 -p `cat /var/run/icecast.pid`

现在我有:

Max open files            30000                30000                files

我不知道是否有办法始终使用这些限制启动“icecast”二进制文件,或者总是需要在运行后对PID运行命令。