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的服务配置参数测试的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号