人大金仓数据库cpu占用率高问题排查
前言
近期发现一到早业务高峰和晚业务高峰,用户反映系统卡顿,检查到数据库发现,数据库cpu占用率高,多核心占用率100%
解决方式如下:
数据库客户端连接上数据库管理员用户
select * from sys_stat_activity where pid='65487' --这里的PID就是服务器top命令显示的PID
也可以使用
select * from sys_stat_activity where STATE='active'
查看到底是哪些sql在执行中,一直不释放
总结
通过观察,最终定位到,原来,项目大量的定时任务,使用cron表达式进行定时执行,cron表达式有个恶心的地方,如果你设置7分钟执行一次,会在 7、14、21、28、35、42、49、56、00分钟分别执行一次,发现了么 00分钟也执行了,如果有大量这样的任务都在00执行,数据库压力就会暴增。