linux - too many open files?

系统都已经配置了:

/etc/security/limits.conf
*               soft    nofile          65000
*               hard    nofile          65000

/etc/sysctl.conf
net.ipv4.ip_local_port_range = 1024 65000

ulimit -n
//output 6500

现有一个很奇怪的现在,有个程序还是会报 “too many open files”,跟了一个下午发现,重启系统后,自动启动的进程的max open files还是默认的1024:

cat /proc/751/limits
Max open files            1024                 4096                 files

但是手动重启程序后,恢复:

cat /proc/1432/limits
Max open files            65000                 65000                 files 

是不是这些进程启动级别高,以至于启动时系统配置还没生效?哪里没有配置正确?

阅读 5.8k
1 个回答

你用的是不是Ubuntu下的upstart启动的进程?可能和Upstart的设置有关。
这里有报过upstart的这个BUG,不过好像它不承认这是BUG,因为本来limits.conf就只对login session生效:https://bugs.launchpad.net/ub...
解决方案:http://bryanmarty.com/blog/20...

在每个需要的upstart脚本前加limit nofile 4096 4096

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题