配置推送错误导致DB被kill

痕风 2013年3月22日16:19:59
评论
68

【编者按】这是日常环境发生的一起mysql收到kill信号的问题,作者维西(@维西V )将其整理如下:

【问题表现】

在功能测试时,mysql经常被kill掉,有较统一的时间间隔:

gbk可以看到是明确的kill 信号                                     

配置推送错误导致DB被kill

【问题原因】

首先排除了人为后台脚本进行kill,检查环境时发现ulimit 有异常参数:

【影响范围】

     SQA的DB机器8台,web app机器5台

【问题分析】

标准DB模版clone中,和ulimit相关的文件如下,(优先级低->高):

所以ulimit -t参数为默认值unlimited,该机器上的配置文件和clone一致,但运行ulimit -t显示的竟然是300。

经排查发现,OS配置管理时,一个任务为对自己所用资源做限制,

连接进来后申明了ulimit -t 300的session参数

然后该任务不断扩展,增加了重启sshd操作,导致后续ssh进来的进程继承了300的配置,导致问题

 (新进程先继承session参数,后读取OS配置文件,但配置文件未写出cpu limit,合并后取300)。

【源码】

【改进措施】

/etc/security/limits.conf中对all账号,显式注明cpu unlimited (soft/hard)

底层配置管理或者批量操作时,避免使用小众命令,尽量使用常规命令和成熟工具。

【编辑推荐】

继续阅读
weinxin
痕风的起点
专注于互联网资讯、中央空调、Windows、wordpress、建站技术、软件应用等相关网络资源的分享。
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: