今天公司数据库一直告警,cpu占用率86%-97%跳动。 并没有什么特殊操作,一直这么居高不下。
show PROCESSLIST 一下,发现数据库有一百多条链接挂在那里, 大部分都是sleep。
仔细看看有部分链接已经沉睡了好几千秒, 觉得很诧异,以前也设置过wait_timeout, 设置了100, 这些链接为啥还不被关掉?
后来网上搜了下, 发现单独设置 wait_timeout, wait_timeout不会生效,必须要配合 interactive_timeout一起设置才行。
于是下面一套命令, 数据库恢复正常。
具体情况还需要继续观察, 看看还会不会出现cpu占用率过高问题。
show global variables ;
show GLOBAL VARIABLES like 'wait_timeout' ; ## 等待超时时间查询
show GLOBAL VARIABLES like 'interactive_timeout' ; ##交互超时 时间查询
SET GLOBAL interactive_timeout=100; ## 交互超时时间
SET GLOBAL wait_timeout=100; ## 设置等待超时时间