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

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

Linux 运维

坏坏的不爱 10 years, 11 months ago

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

MJvsYY answered 10 years, 11 months ago

Your Answer