我试图诊断一个问题,其中一个phpBB留言板挂起(变得没有响应)大约五分钟,大约每小时一次。(它并不是每小时都开一小时,但它比每小时稍微少一点,也就是说,每小时一小时多一点。)在CPU/内存使用率图上,中断可以看作是峰值(达到100%)。这似乎是一个有争议的MySQL查询。MariaDB版本是“VER15.1要塞10.6.12-MariaDB”。我一直在尝试使用给出的这里建议来诊断查询的内容。不幸的是,当我登录到MySQL接口并运行查询时
select * from performance_schema.threads where THREAD_OS_ID = <tid> \G
(其中<tid>是使用pidstat -t -p <mysqld_pid> 1提供的占用CPU的TID,而<mysqld_pid>是使用ps -ef | grep 'mysql'提供的)
我得到了“空集”的结果。我做错了什么?(在使用该TID的线程消失之前,我肯定正在运行该查询。)
发布于 2023-02-27 20:59:15
我建议与SlowLog一起使用long_query_time = 1。
这将帮助您在事实之后找到顽皮的查询。
你提到了“停机”--我想这只是一个减速,而不是需要重新启动或重新启动mysqld的崩溃?
如果是崩溃,请在下一个事件之前以根用户身份登录,并重复执行SHOW FULL PROCESSLIST,以捕捉顽皮的查询。
检查cron作业和EVENTs,看看是否在“小时”之前启动了一些东西。如果是的话,就专注于它。
https://dba.stackexchange.com/questions/324115
复制相似问题