centos 7系统中,mysql 5.7.23的服务管理已经从传统的sysvinit(使用命令如service mysql start)转变为systemd(使用命令如systemctl start mysqld.service)。最近,我对mysql 5.7.23的服务管理参数进行了测试,主要涉及restart、restartpreventexitstatus、restartsec和startlimitinterval这四个服务启动参数。
【服务启动方式对比】
1、在CentOS 7上,MySQL 5.7.23使用默认参数的服务启动方式
在MySQL崩溃(crash)、内存溢出(OOM)或使用kill -9终止进程(pid)三种情况下,mysqld进程都会被立即重新启动,间隔为100毫秒。
使用systemctl stop mysqld.service命令停止服务时,服务不会自动重启。
2、在CentOS 6上,MySQL 5.6.21的服务启动情况
MySQL崩溃、OOM导致的崩溃和OOM kill时,mysqld进程会被终止,但由于存在mysqld_safe守护进程,mysqld会自动重启。
对于kill -9命令,如果只终止mysqld进程,mysqld_safe守护进程会重新启动mysqld;但如果mysqld_safe也被终止,那么mysqld就不会被重新启动。
使用service mysql stop命令停止服务时,服务不会自动重启。
【如何在CentOS 7上实现kill -9 mysqld后不自动重启】
在RestartPreventExitStatus=参数中列出的退出码或信号不会导致服务被重新启动。
通过修改RestartPreventExitStatus=1 SIGKILL,添加kill -9对应的SIGKILL信号。
测试表明,使用kill -9后,mysqld进程不会自动重启。
同样,测试OOM情况时,mysqld进程也不会自动重启。
这是因为OOM在终止进程时发送的也是SIGKILL信号。
【需要关注的两个服务配置参数】
1、RestartSec参数设置在重启服务(Restart)之前暂停的时间,默认值是100毫秒,即在mysqld进程因OOM或被终止后等待100毫秒后立即重启。
在MHA配置中,ping_interval=10表示MHA Manager每10秒ping一次master,尝试3次失败后执行故障转移(failover)。
这个参数需要评估是否需要调整,比如如果希望异常情况能被MHA检测到,最安全的做法是设置间隔30秒后重启mysql进程,即设置RestartSec=30。
2、StartLimitInterval参数
设置单元的启动频率限制。默认情况下,一个单元在10秒内最多允许启动5次。建议将其修改为StartLimitInterval=0,以无限制地重启。
以上就是CentOS 7下MySQL5.7.23的服务配置参数测试的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/31047.html
微信扫一扫
支付宝扫一扫