在做Nginx高压力测试时,偶尔某台WEB的logs抛出Too Many Open Files,一般从以下3方面调优:
第一:nginx.conf参数规划与设置
worker_rlimit_nofile :限制单个工作进程打开的最大文件数:
首先查看这个值设置,推荐设置:越大越好
第二:系统级别的检查与设置
就是 /etc/security/limits.conf的配置与修改,请参考Linux系统资源限制汇总
第三:内核级别的检查与设置:
fs.file-max值的大小设置:
注意:file-max的默认值大概是系统内存的10%(系统内存以kb计算),别设置的比系统默认的还小
在合理规划以上3个层次的设置后,必须做验证:
1.验证nginx程序的限制
# ps -ef |grep nginx
将得出的PID XXX带入下面
#cat /proc/XXX/limits
查看Max open files 那一行
2.验证系统级别的限制
# ulimit -n
3.验证内核级别的限制
#cat /proc/sys/fs/file-max
--------------------------------------分割线 --------------------------------------
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块
CentOS 6.4安装配置Nginx+Pcre+php-fpm
--------------------------------------分割线 --------------------------------------