我在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它运行在"ices“用户上:
sudo -u ices /opt/icecast/bin/icecast -c /opt/icecast/etc/icecast.xml -b或以root用户的身份运行,选择"changeowner“选项为"ices”用户。
我设置了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个文件描述符?谢谢。
发布于 2017-06-21 23:00:17
也许我找到了解决办法。需要检查问题何时再次发生。
我意识到limits.conf为每个用户设置了限制。我找到了一种方法来设定每个过程的限制。
/usr/bin/prlimit -n30000 -p `cat /var/run/icecast.pid`现在我有:
Max open files 30000 30000 files我不知道是否有一种方法总是启动具有这些限制的"icecast“二进制,或者在运行后总是需要对PID运行命令。
https://stackoverflow.com/questions/44687163
复制相似问题