背景介绍
- 数据库症状:系统高负载情况下错误日志中出现long semaphore wait信息,数据库实例本身hang住,无法提供正常的访问服务,可登录,但登录后任何操作没有反应。
- 数据库版本:8.0.20
- 操作系统版本:CentOS 7.6
- 主机信息:32GB内存,CPU 16cores
- 数据库架构:单实例MySQL
处理方式
鉴于业务端无法正常使用DB,故只能通过操作系统层面执行命令 kill -9的方式临时杀进程重启MySQL实例,以最短的时间恢复DB正常使用。
问题分析
首先通过MySQL错误日志中的内容进行原因查找,错误日截图如下:(由于当时获取信息不便,临时采用截图的方式保留故障信息)
概念:
long semaphore waits 是什么? --信号量,控制资源的并发访问 这里是信号量的等待,Semaphore就像可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。
背景<