前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次worker_rlimit_nofile配置引发的问题

记一次worker_rlimit_nofile配置引发的问题

作者头像
后端技术探索
发布2018-08-10 10:38:16
2.2K0
发布2018-08-10 10:38:16
举报
文章被收录于专栏:后端技术探索后端技术探索

记录一次最近公司SEO优化压测,以前所有页面上的数据都是通过JS获取的,这样会有一个问题,就是SEO不友好,所以就增加了一层Node,接口请求放在了Node里,通过Node渲染页面后返回给浏览器。因为是一次比较大的改版,所以在测试环境进行了一次性能压测,当然测试环境机器有限,是按比例缩小进行压力测试。中间出现了几个问题,印象最深刻的就是Nginx最大连接数了。最开始因为对Nginx高性能的信任,所以没往这方面想。

通过查看Node请求日志发现一些接口报50x错误,但Java日志并没有相关错误日志,偶然发现Nginx上有记录异常信息,报了很多的 open too many files 错误,Socket在Linux中也是一个文件,也受Linux的最大打开文件数限制。通过 ulimit -n 查看到测试环境上配置是默认的1024,这自然是远远不够的。

通过修改 /etc/security/limits.conf 增加到65535,重新登录后虽然 ulimit -n 显示的是变了,但还是继续报这个错,后来才知道该配置需重启服务器才生效,重启服务器太麻烦,无奈只好把修改Nginx运行用户修改为root,root用户不受此限制(当然生产环境上是不敢如此修改的)。修改完了之后就正常,但继续往上压测还是会出现该错误,后来通过修改Nginx配置 worker_rlimit_nofile 及 worker_connections 才得以正常。Nginx配置文件 nginx.conf 修改完reload下即可生效:nginx -s reload。

相关配置如下所示:

user root; worker_processes 2; worker_rlimit_nofile 15360; events { use epoll; worker_connections 10240; }

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nginx 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档