谈谈Nginx报错“too open many files”带来的坑

在项目上用jmeter进行性能测试,在测试到一个‘地图载入’的点时监控nginx发现error.log中疯狂报错“too many open files”,第一时间就去看了linux服务器的打开文件句柄数设置的多大。

ulimit -n看了下是默认的1024,于是ulimit -n 65535改大了些,其实还能设置的更大,但当前数量肯定也够了…准备再次测试发现还是出现大量的“too many open files”错误?没生效?

再次确认了下服务器的打开文件的句柄数量确实是生效的,难道还需要对nginx.conf配置文进行配置么?

又在nginx.conf文件中加入了worker_rlimit_nofile 65535后使用reload命令对nginx进行重载,反复试了几次发现还是没生效?file

然后决定改用kill命令先将nginx主进程杀死然后再启动,再跑一次试试看,居然可以了?
嗯….以后就决定用kill命令了……

不过有趣的是在前一天进行测试时并没有像以上过程中改完linux服务器的打开文件数量再去改nginx的配置,而是直接改了linux服务器的打开文件数量之后再测试就可以了file

在因为上述坑爹的问题百度找答案时看到了这个
file
kill是重新读取,那么reload重载不应该也是可以的么???