chanlk
V2EX  ›  数据库

求助帖: 上线之后数据库 CPU 升高,找不到原因

  •  
  •   chanlk · Sep 22, 2020 · 2557 views
    This topic created in 2110 days ago, the information mentioned may be changed or developed.

    数据库使用的是 aws 的 rds;

    上线后从它的监控面板看到 cpu 使用率大概增加了一倍 做了些工作,但是还是找不到原因

    说一下自己已经做过的工作:

    1. 排查了慢查询,正常,和上线前差不多
    2. 数据库的连接数方差变大(变大 20-30%),其他监控曲线波动不大(如 IOPS,网络的 I/O,内存和队列等)
    3. 检查了业务的服务器监控,曲线也是稳定的
    4. 用 show processlist 看了下没有什么毛病

    有大佬能提供一下排查思路吗?感激不尽

    7 replies    2020-09-29 14:30:47 +08:00
    pmispig
        1
    pmispig  
       Sep 22, 2020   ❤️ 2
    top 查看 mysql 哪个线程 CPU 使用率高,然后 select * from performance_schema.threads where THREAD_OS_ID=xxx;
    yumenawei
        2
    yumenawei  
       Sep 22, 2020
    更改了 SQL 语句吗?
    可能是由于某些计算量大的聚合操作导致的,比如说 max min
    pmispig
        3
    pmispig  
       Sep 22, 2020
    如果是 rds 的话可能只能用点巧劲儿,把所有的 SQL 日志都打出来,分析下,(执行频率高 and 执行时间很长 )做一个并集,就是这个 SQL,再去找属于哪个应用和业务
    chanlk
        4
    chanlk  
    OP
       Sep 22, 2020
    @yumenawei 更改了 sql,但是这些 sql 是低频的,是客服系统用的
    @pmispig 没有太高的数据库权限,我把你的思路提供给了运维小哥,我这边看下从业务接口耗时的层面上不知道能不能找到是哪些接口导致的

    谢谢~
    tieqishan07li
        5
    tieqishan07li  
       Sep 22, 2020
    直接提工单让 AWS 查一下,他们肯定有排查思路
    chanlk
        6
    chanlk  
    OP
       Sep 26, 2020
    这个问题几天前解决了额,回帖终结一下这个.
    因为没有数据库的权限,让运维小哥帮忙看了下表 in_use 的情况,发现有几个表一直被使用着.
    查了下代码,原因就是有一个接口查询的频率太高了,后面改了下这块的查询逻辑就好了.
    avatasia
        7
    avatasia  
       Sep 29, 2020
    这个不叫解决吧, 为什么频率高就会影响 CPU?
    有没有热块的概念, 有没有争用的概念.

    减少查询频率就好啦?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1502 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 16:37 · PVG 00:37 · LAX 09:37 · JFK 12:37
    ♥ Do have faith in what you're doing.