【nginx】优化系列之worker_connections
2017-10-25 18:32
204 查看
events {
use epoll;
worker_connections 8192;
}
增加 worker_connections,测试配置报告:
open file resource limit 是linux中process可以打开的文件句柄数量。增加这个数值需要调整两个配置:
第一步, 修改系统最大允许的文件描述符
查看当前的设置:
$ cat /proc/sys/fs/file-max
2390251
或者
$ sysctl -a
fs.file-max = 2390251
该系统是CentOS 5.x x64版本,安装好后没有做过优化设定, 2390251是其默认值
$ ulimit -n
1024
如果 /proc/sys/fs/file-max小于我们要设定的句柄数量,可以通过:
$echo “2390251” > /proc/sys/fs/file-max
或者修改 /etc/sysctl.conf,在文件中修改fs.file-max的值(没有就创建一条)
修改完后可以通过
$ sysctl -p
使设置生效
2. 文件描述符修改后,需要调整针对用户或者组(user/group)的限制
/etc/security/limits.conf,文件格式为
<domain> <type> <item> <value>
其中<type>为 soft或者hard,有些应用会自动把soft限制提升到hard限制,如java,至于nginx,没有看到相关的文档。
如:
* – nofile 8192
表示对所有的用户,文件描述符可以用到 8192, 或者
user_abc – nofile 8192
表示对用户 user_abc,文件描述符可以用到 8192
3. 有些情况 /etc/security/limits.conf并不会发生作用,如在 init.d 中启用的进程,或者daemons运行的进程。
此时比较有效的办法是在init的script中,明确命令 ulimit -n xxxxx
除了在系统中进行设定 nofile(fs.file-max) 值外,可以在 nginx.conf 中指定worker_process可以使用的nofile值,如:
#user nobody;
worker_processes 3;
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
pid /var/run/nginx.pid;
worker_rlimit_nofile 8192;
events {
use epoll;
worker_connections 8192;
}
重新加载nginx配置,使新设定生效。
上面方案还临时减少了另外一个常常出现的错误:
use epoll;
worker_connections 8192;
}
增加 worker_connections,测试配置报告:
[warn]: 8192 worker_connections are more than open file resource limit: 1024
这需要调整系统的文件描述符 nofileopen file resource limit 是linux中process可以打开的文件句柄数量。增加这个数值需要调整两个配置:
第一步, 修改系统最大允许的文件描述符
查看当前的设置:
$ cat /proc/sys/fs/file-max
2390251
或者
$ sysctl -a
fs.file-max = 2390251
该系统是CentOS 5.x x64版本,安装好后没有做过优化设定, 2390251是其默认值
$ ulimit -n
1024
如果 /proc/sys/fs/file-max小于我们要设定的句柄数量,可以通过:
$echo “2390251” > /proc/sys/fs/file-max
或者修改 /etc/sysctl.conf,在文件中修改fs.file-max的值(没有就创建一条)
修改完后可以通过
$ sysctl -p
使设置生效
2. 文件描述符修改后,需要调整针对用户或者组(user/group)的限制
/etc/security/limits.conf,文件格式为
<domain> <type> <item> <value>
其中<type>为 soft或者hard,有些应用会自动把soft限制提升到hard限制,如java,至于nginx,没有看到相关的文档。
如:
* – nofile 8192
表示对所有的用户,文件描述符可以用到 8192, 或者
user_abc – nofile 8192
表示对用户 user_abc,文件描述符可以用到 8192
3. 有些情况 /etc/security/limits.conf并不会发生作用,如在 init.d 中启用的进程,或者daemons运行的进程。
此时比较有效的办法是在init的script中,明确命令 ulimit -n xxxxx
除了在系统中进行设定 nofile(fs.file-max) 值外,可以在 nginx.conf 中指定worker_process可以使用的nofile值,如:
#user nobody;
worker_processes 3;
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
pid /var/run/nginx.pid;
worker_rlimit_nofile 8192;
events {
use epoll;
worker_connections 8192;
}
重新加载nginx配置,使新设定生效。
上面方案还临时减少了另外一个常常出现的错误:
limiting connections by zone “one”, client: xxx.xxx.xx.x, server:….
关于此问题的详细描述,会在后续文章中列出相关文章推荐
- nginx 优化系列之worker_connections
- nginx 优化系列之worker_connections
- nginx 优化系列之worker_connections
- nginx 优化系列之worker_con…
- nginx优化优化worker进程连接数量能力worker_connections
- [Nginx]并发数问题思考:worker_connections,worker_processes与 max clients
- nginx优化专题--worker_cpu_affinity
- nginx: [warn] 1024 worker_connections exceed open file resource limit: 256
- Nginx 多核cpu 优化:(Core) + worker_processes (worker_cpu_affinity)
- 关于nginx性能优化CPU参数worker_cpu_affinity使用说明
- 一个和worker_connections参数相关的Nginx系统问题及解决办法
- Nginx中worker_connections的问题
- nginx最大并发连接数的思考:worker_processes、worker_connections、worker_rlimit_nofile
- nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- nginx中关于并发数的问题worker_connections,worker_processes
- 【转载】nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- Nginx中worker_connections的问题
- Nginx性能优化CPU参数worker_cpu_affinity使用说明
- Nginx中worker_connections的问题