在Debian上太多的文件描述符,ulimit -n没有效果

让我把ulimit -n和/etc/security/limits.conf的所有答案都说出来:我试着设置ulimit -n到2048,4096和65535.我已经设置了soft和努力限制所有这些价值观。 ulimit -n显示它已被更改。 但是在运行服务器时,它仍然只能有1024个打开的套接字。 接受与errno 24(太多打开的连接)失败。

经过几个小时的search,在#debian上询问,并在ServerFault上阅读问题,我还没有find解决scheme。 为什么ulimit -n会显示一个数字,但仍然被限制为1024个打开的文件描述符?

一些潜在有用的信息:这个过程是在屏幕上的terminal上开始的。 是的,我已经将pam_limits.so添加到/etc/pam.d/su。 我也将它添加到/etc/pam.d/common-session。 仍然没有运气。

没关系,事实certificate问题是ulimit -n和FD_SETSIZE的组合。 看来应用程序正在使用setrlimit将ulimit -n设置为FD_SETSIZE。 我通过将__FD_SETSIZE重定义为更大的内容来解决这个问题。

这个命令告诉你什么?

sysctl fs.file-max 

你可以尝试:

 sysctl -w fs.file-max=[bigger-number] 

如果可行,那么将其添加到/etc/sysctl.conf文件中:

 fs.file-max = [bigger-number]