#每日一记# MySQL 申请系统资源失败
  

sailyang 3533

{{ttag.title}}
本帖最后由 sailyang 于 2020-12-1 14:02 编辑

出现这种现象通常会在 MySQL 的错误日志里下面的提示:

mysqld got signal 11
我们使用 perror 查看一下 11 错误的原因:

root@scutech:~# perror 11
OS error code  11:  Resource temporarily unavailable
MySQL error code MY-000011: Can't unlock file (OS errno %d - %s)
最常见的是系统内存不足,由于系统连接数的增加和每个连接对内存的占用增加,造成 MySQL 申请新的内存失败而 crash,此时错误日志里面通常有类似下面的记录:
10:55:07 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.
Please help us make Percona Server better by reporting any

key_buffer_size=16777216
read_buffer_size=8388608
max_used_connections=95
max_threads=50001
thread_count=31
connection_count=28
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 819273023 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.




此段的记录里面列出了内存占用的计算方法,但需要注意这个公式里面没有把内存占用的大户,Innodb 的 buffer pool 计算进来,大家可以用这个公式加上 buffer pool 计算自己的内存占用,然后根据自己的实际情况对各个参数进行调整,如果连接数过多,可以通过修改 max_connections 对最大连接数进行限制。

除了内存不足造成 MySQL 申请系统资源失败外,另一个常见的现象是磁盘问题,例如磁盘空间满了,磁盘上的文件 corrupt 都会造成 MySQL crash。此时需要定位 crash 的根本原因有下面几种方法:

仔细阅读 MySQL 的错误日志,这个日志里面的一些程序调试信息看起来很让人困惑,但静下心来仔细看,很多时候会找到线索;

打开 general query log ,找到最后一个 sql 访问的表或索引,检查这个表或索引,如果有问题就重建,通常可以解决问题。

开启 core dump,使用 gdb 分析 core file;

使用 strace 跟踪 mysqld 进程的系统调用;

使用 CMake 的选项 -DWITH_DEBUG=1 重新编译 mysqld,然后运行重新编译后的 mysqld,查看 trace 文件。

打赏鼓励作者,期待更多好文!

打赏
2人已打赏

guafeng00 发表于 2020-12-3 09:13
  
学习学习
gqce 发表于 2020-12-8 09:05
  
感谢分享
美好潼年 发表于 2020-12-9 10:52
  
感谢分享,学习了
新手689629 发表于 2020-12-9 17:28
  
学习学习
新手589624 发表于 2021-1-15 08:40
  
坚持每天登录论坛学习
李会斌 发表于 2021-1-18 09:09
  
1·1111111111111
小鱼儿 发表于 2023-8-8 19:46
  

感谢分享,有助工作
唐三平 发表于 2023-8-8 19:46
  

感谢分享,有助工作
鲤鲤 发表于 2023-8-8 20:11
  
感谢分享,有助于工作
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
干货满满
每日一问
【 社区to talk】
新版本体验
技术笔记
功能体验
技术咨询
产品连连看
GIF动图学习
标准化排查
2023技术争霸赛专题
每周精选
通用技术
信服课堂视频
秒懂零信任
技术晨报
安装部署配置
排障笔记本
自助服务平台操作指引
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版达人

新手89785...

本周建议达人

新手78183...

本周分享达人