博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 被ulimit 所困
阅读量:5924 次
发布时间:2019-06-19

本文共 1466 字,大约阅读时间需要 4 分钟。

开始:晚上十点被报警惊醒(幸好还没睡觉),报警内容:xxxxxxxxxxxxx“MySQL IS Down”;MySQL 没有任何预兆的就死啦。

勘察现场:->查看下MySQL进程---存在

->系统load,cpu,io 均很正常

->(个人觉得zabbix 不会误报)

->登录MySQL提示:ERROR 1135 (HY000): Can’t create a new thread (errno 11)

->perror 11 显示:

OS error code 11: Resource temporarily unavailable

->第一反应是 文件句柄不够用,查看文件句柄使用情况:

lsof -n | awk '{print $2}' | sort | uniq -c | grep 'pid of mysql'

-------一切正常;

ulimit -a 

显示所有的结果:

max process 为 1024;--基本可以肯定问题就出在这里,某个程序发起了过多的连接,现在可以考虑坐下限制(简单粗暴的方法是 设置ulimit -u 102400,然后再重启MySQL--):

----> 查看3306 连接数:

1
netstat 
-ano | 
grep 
ip:3306 | 
awk 
'{print $5}' 
awk 
-F 
':' 
'{print $1}' 
sort 
uniq 
-c

可以考虑使用iptables 限制最大连接数来处理:

1
iptables -A INPUT -p tcp -m tcp --dport 3306 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 200 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

每个ip并发连接不超过200个

明天可以让程序查代码啦!

故障反思:

其中漏掉的一点是:查看系统限制:/etc/security/limits.conf 中 

max process = 65535

但ulimit -a 的时候显示的是 1024

1
su 
mysql 
bash 
-c  
"ulimit -a"

这不科学的:

后经过google 大神的指点:参考

发现在centos 6.x中,添加了一个新的文件:/etc/security/limits.d/90-nproc.conf ,只有 noproc是已这个文件为准;

总结为:在centos5里面,只要在/etc/security/limits.conf 设置好久可以啦,在Centos6里面除了上面提到的limits.conf 配置文件,还要设置好/etc/security/limits.d/90-nproc.conf

方法二:找到一个可以不重启MySQL就可以在线修改noproc的方式!

Linux 2.6.32开始可以使用echo -n "Max processes=204800:204800" > /proc/`pidof mysqld`/limits 来动态修改进程的系统资源limits信息,不用再因为修改这个而去重启实例,亲测可用!

关于更多ulimit 的实例,可以参考@淘宝褚霸的文章:

本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1301858,如需转载请自行联系原作者
你可能感兴趣的文章
Pod在多可用区worker节点上的高可用部署
查看>>
15 款免费好用的 Mac App
查看>>
带你了解SN74LVC245ADWR
查看>>
java框架学习日志-7(静态代理和JDK代理)
查看>>
微服务化的道与术
查看>>
Struts2学习:struts.xml引入自定义的xml文件
查看>>
将博客搬至CSDN
查看>>
Spring事务 tx:method 默认-2
查看>>
leetcode 对称二叉树 java篇
查看>>
OSChina 周六乱弹 —— 程序猿讨媳妇大全
查看>>
OSChina 周三乱弹 —— 冰枫~这里绝对没有你想要的内容
查看>>
Apache Hadoop 下一代的MapReduce(YARN)
查看>>
致非程序员:为什么应该学习编程?
查看>>
唠唠SE的IO-02——字节输入输出流
查看>>
安装完centos7.0 虚拟机
查看>>
怎么用ABBYY在线浏览PDF文件
查看>>
假日教程-ZStack映像檔系列(Froxlor Server Management Panel)
查看>>
iOS开发 多线程(一)GCD中dispatch队列知识
查看>>
分布式数据库系统的理想目标或标准定义---《分布式数据库系统及其应用》
查看>>
Scala 学习笔记(8)
查看>>