流沙团
关于nginx在大并发请求下出现500 Internal Server Error
2020-10-14 流沙团




0x01 问题

500 Internal Server Error



服务器用户量很大, 每秒的连接数>6000, 每分钟的更新量>1000, 查询数未统计. 服务器出现了各种奇怪的问题







0x02 参考方法1



测了一下发现在高并发的请求下有很多500 Internal Server Error错误请求,看了一下日志发现并不是应用服务器抛的而是nginx抛的,查了一下发现原因是和文件打开句柄太小有关。



解决方法如下:

在Linux下输入



$ ulimit -n

256



我之前的显示结果是256,限制只能打开256个文件,ulimit命令是设置当前用户一个进程可拥有的文件描述符的数量。

调整为:

$ ulimit -n 65535



nginx是默认系统最大限制数,所以不用修改了,如果想限制nginx要在conf文件头上加入:

worker_rlimit_nofile 65535



服务器是两台前端 + 两台后端 + 两台mysql+两台文件服务器, 撑不住, 配置了没有解决



但是服务器压力不大, 现在不知道丢包的报错出现在什么地方!







0x03 参考方法2



水平扩容



准备把前端 变为3台



后端变为3台, 看看是否还会出问题!









发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容