文档章节

[故障排插日记]nginx并发过高导致远程客户端无法连接数据库

吾爱
 吾爱
发布于 2016/05/19 16:28
字数 471
阅读 73
收藏 4

服务器A: nginx php mysql

服务器B: nginx php

故障现象: 服务器B无法远程连接服务器A的mysql服务(一直等待直至超时),经过排查发现关闭服务器A的nginx后mysql即可正常连接。

排查过程: 1.关闭A的防火墙,发现没什么用 2.查看A的tcp连接,发现有很多time_wait和fin_wait1

netstat -anp | grep ":80"
netstat -anp | grep ":3306"

3.统计80端口连接数

netstat -anp | grep ":80" | wc -l

发现连接数量非常多

4.暂停服务器A的nginx服务,mysql瞬间复活

5.估计是nginx占用了太多的"资源",尝试限制nginx

6.修改nginx.conf,调整 worker_processes 为 1,worker_rlimit_nofile减小到2048,worker_connections减小到2048,重启nginx服务,mysql不再受到影响。

探究原理:

1.文件描述符 修改的nginx参数主要是文件描述符和每worker处理连接数。

cat /proc/sys/fs/file-nr
#5728	0	1615734

查看系统文件描述符状态,第一列表示系统打开的文件描述符,第二个表示已分配但未使用的,第三列表示文件描述符总数

查看nginx打开的文件描述符数量,首先查看nginx进程号

pidof nginx
#6557 6556 6555
ll /proc/6555/fd | wc -l
#17
ll /proc/6556/fd | wc -l
#2000
ll /proc/6557/fd | wc -l
#15

查看系统文件描述符数量限制

ulimit -n
#1024

更多尝试 lsof

还不知道到底要怎么做,先试试ulimit -n 65535吧,nginx疯狂报错:too many open files

后记

最后还是从提高处理速度,减少请求,增加服务器负载均衡等方面处理,系统本身我实在不会优化了。 最后先上了cdn,静态文件合并,请求数量能减少一大半。

© 著作权归作者所有

吾爱
粉丝 142
博文 271
码字总数 91680
作品 0
后端工程师
私信 提问
无法连接windows实例的问题排查

无论何种原因导致无法远程连接实例,先尝试用阿里云提供的远程连接功能进行连接,然后再按原因分类进行故障排查。 1. 客户端本地网络异常 故障现象:用户无法登录外网。 可能原因:网卡驱动未...

lulullll
2018/11/10
0
0
阿里云Windows系统服务器无法远程连接的原因有哪些?

下图显示了无法连接 ECS 实例的原因分类和出现概率。若您无法连接实例,建议按照如下原因进行排查。 首先尝试远程连接 无论何种原因导致无法远程连接实例,请先尝试用阿里云提供的远程连接功...

gydtep
02/15
0
0
Oracle常见故障——Listener类:Hang、Crash及连接风暴的判断

目录 监听状态正常,应用反馈时断时连 Listener进程crash ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 11G SCAN LISTENER无法注册服务故障 Listener hang TNS-12535 TNS-00505处...

杨志洪 胡杰
2015/12/23
0
0
更换 Tengine 后引发的群体事件: OSCers 压力测试报告

上次 OSChina 换了 Druid 连接池后,@整俩硬菜 在论坛发起围攻 OSC 的号召,约定的时间是 16:30:给红薯一次高潮,从你我做起! 完事后写了个报告。 今天早上我发了新闻说 OSChina 改用 Teng...

红薯
2012/11/19
10.7K
41
捏造的信仰/hydrogen-ssdb

hydrogen-ssdb Java 编写的 SSDB 客户端 更新 2017-08-03: 修复了 Cluster 无法恢复的问题,版本号更新到 1.0.1。 2017-06-13: 完成了最后一个基本特性的实现,版本号正式改为 1.0.0。 介绍 ...

捏造的信仰
2015/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
6分钟前
0
0
input accept属性限制文件上传格式

上传文件的类型;具体做法如下所示: 注意:accept属性可以限制上传格式,其有兼容性如下 《1》上传.csv格式的 <input text="file" accept=".csv" /> 《2》上传.xls格式 <input text="file"......

Jack088
14分钟前
1
0
阿里开发者招聘节 | 面试题01:如何实现一个高效的单向链表逆序输出?

面试,如同玩一场饥饿游戏:既要对环境了然于胸,又要对自身心知肚明。发现一个好工作不容易,但成功应聘又会面临一系列的挑战。 为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别...

阿里云云栖社区
25分钟前
2
0
使用scp命令在多个Linux系统间进行文件复制

一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远...

老孟的Linux私房菜
25分钟前
0
0
CentOS7中ESL服务部署记录

在CentOS7上部署价签系统,需要安装Mysql,Redis,emqtt,jdk。 1)Mysql,参考 2)Redis,参考 3)emqtt,参考 4)jdk,参考 在jdk的下载地址中,下载rpm文件,通过ftp上传到虚拟机后,通过...

莫在全
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部