数据库使用的是 aws 的 rds;
上线后从它的监控面板看到 cpu 使用率大概增加了一倍 做了些工作,但是还是找不到原因
说一下自己已经做过的工作:
- 排查了慢查询,正常,和上线前差不多
- 数据库的连接数方差变大(变大 20-30%),其他监控曲线波动不大(如 IOPS,网络的 I/O,内存和队列等)
- 检查了业务的服务器监控,曲线也是稳定的
- 用 show processlist 看了下没有什么毛病
有大佬能提供一下排查思路吗?感激不尽
数据库使用的是 aws 的 rds;
上线后从它的监控面板看到 cpu 使用率大概增加了一倍 做了些工作,但是还是找不到原因
说一下自己已经做过的工作:
有大佬能提供一下排查思路吗?感激不尽
1
pmispig Sep 22, 2020 top 查看 mysql 哪个线程 CPU 使用率高,然后 select * from performance_schema.threads where THREAD_OS_ID=xxx;
|
2
yumenawei Sep 22, 2020
更改了 SQL 语句吗?
可能是由于某些计算量大的聚合操作导致的,比如说 max min |
3
pmispig Sep 22, 2020
如果是 rds 的话可能只能用点巧劲儿,把所有的 SQL 日志都打出来,分析下,(执行频率高 and 执行时间很长 )做一个并集,就是这个 SQL,再去找属于哪个应用和业务
|
4
chanlk OP |
5
tieqishan07li Sep 22, 2020
直接提工单让 AWS 查一下,他们肯定有排查思路
|
6
chanlk OP 这个问题几天前解决了额,回帖终结一下这个.
因为没有数据库的权限,让运维小哥帮忙看了下表 in_use 的情况,发现有几个表一直被使用着. 查了下代码,原因就是有一个接口查询的频率太高了,后面改了下这块的查询逻辑就好了. |
7
avatasia Sep 29, 2020
这个不叫解决吧, 为什么频率高就会影响 CPU?
有没有热块的概念, 有没有争用的概念. 减少查询频率就好啦? |