记一次worker_rlimit_nofile配置引发的问题

记录一次最近公司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; }

原文发布于微信公众号 - nginx(nginx-study)

原文发表时间:2018-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏刺客博客

Centos下使用ntsysv命令来控制开机自启软件

1042
来自专栏娱乐心理测试

如何新建一个vue项目(图文详解)

作为一个几年IOS开发经验的移动端程序猿来说,已经感到很大的危机感,不得不学习新的东西,选择了在众多框架中脱颖而出的vue作为学习的目标。

1803
来自专栏FreeBuf

对一款不到2KB大小的JavaScript后门的深入分析

在一台被入侵的服务器上,我们发现了一个攻击者遗留下来的脚本。该脚本是由JavaScript编写的,主要功能是作为Windows后门及C&C后端使用。在这里我首先...

3384
来自专栏运维技术迷

Shell系列-Shell概述

一、shell环境及特性 1.什么是shell? 负责向内核翻译以及传达用户/程序指令,相当于操作系统的”外壳”.在Linux中默认shell一般为/bin/b...

2765
来自专栏小白课代表

PanDownload 1.5.4 回归!享受飞一样的下载体验!!!

2542
来自专栏实战docker

docker下使用disconf:极速体验

前面的文章中我们实战了docker下搭建disconf环境,现在我们学习如何使用disconf提供的动态配置服务,本章我们不深入研究,而是以最快的速度体验一个j...

3447
来自专栏idba

主从替换之后的复制风暴

一套MySQL主-备-备-备数据库,其中的备库升级到主库之后,系统监控报警 Seconds_Behind_Master 瞬间为0,瞬间为数十万秒。第一感觉是遇...

1742
来自专栏java思维导图

从输入URL到页面展示到底发生了什么

地址:http://www.cnblogs.com/xianyulaodi/ 作者:咸鱼老弟

1303
来自专栏逸鹏说道

全站缓存时代

原则:动静分离,分级缓存,主动失效。 Web 开发中,接口会被分为以下几类: 纯静态页面。打死我都不会修改的页面。很长一段时间内,基本上不会修改。比如:关于我们...

3918
来自专栏程序员的碎碎念

git上传更新项目-错误总结

前些天做完项目一部分内容的时候,想git上传代码上去远程仓库里,却出现了不少git的错误提示信息。在这里总结一下吧: 一、正确的git上传更新项目步骤为:...

3163

扫码关注云+社区