zoukankan      html  css  js  c++  java
  • 【故障公告】数据库服务器 CPU 近 100% 引发的故障团队

    非常抱歉,今天上午 10:48 ~ 11:33 期间,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)又出现了 CPU 近 100% 问题,由此给您带来麻烦,请您谅解。

    这次刚开始出现 CPU 近 100% 问题时,没有造成大的影响,后来有段时间 CPU 降了下来,由于是访问高峰,我们没有敢立即进行主备切换,但 11:20 之后出现的 CPU 近 100% 问题对网站的正常访问影响越大越大,11:33 左右我们进行了主备切换后恢复了正常。

    这次数据库 CPU 近 100% 期间,从阿里云 RDS CloudDBA 控制台看执行最多的是 3 条 SQL 语句,前2条是 EF Core 3.0 生成的包含 "IS NOT NULL" 的 SQL 语句,第3条是一个存储过程。

    由于 .NET Core 3.1 正式版12月初即将发布,所以在上次故障之后我们没有立即将 EF Core 升级至 3.1 Preview 版,现在来看,不能等了,我们会尽快升级,消除 EF Core 生成的多余 "IS NOT NULL" 。

    另外,阿里云数据库专家会帮我进一步分析数据库,看是否会发现更多线索。

    【更新】

    经过阿里云数据库专家的分析,这次 CPU 近 100% 问题依然是 EF Core 生成的 null checks SQL 语句引起的,这次的罪魁祸首是下面的 SQL

    ...
    WHERE [b].[BlogID] = @__blogId_0
        AND @__blogId_0 IS NOT NULL
        AND [b].[IsExist] = CAST(? AS bit)
        AND ([b].[PostType] | @__type_1 = @__type_1
            AND ([b].[PostType] | @__type_1 IS NOT NULL
                AND @__type_1 IS NOT NULL)
            OR [b].[PostType] | @__type_1 IS NULL
            AND @__type_1 IS NULL)
        AND ([b].[PostConfig] & @__config_2 = @__config_2
            AND ([b].[PostConfig] & @__config_2 IS NOT NULL
                AND @__config_2 IS NOT NULL)
            OR [b].[PostConfig] & @__config_2 IS NULL
            AND @__config_2 IS NULL)
        AND [b0].[DiggCount] > ?
    ORDER BY COALESCE([b0].[DiggCount], ?) DESC
  • 相关阅读:
    dijkstra (模板)
    LUOGU P2476 [SCOI2008]着色方案
    LUOGU P2344 奶牛抗议 (树状数组优化dp)
    LaTeX 公式大全
    LUOGU P1505 [国家集训队]旅游 (树链剖分+线段树)
    LUOGU P2416 泡芙 (缩点+树剖)
    LUGOU P1092 虫食算
    BZOJ 3090: Coci2009 [podjela] (树形背包)
    bzoj 4823 [Cqoi2017]老C的方块——网络流
    bzoj 3158 千钧一发——网络流
  • 原文地址:https://www.cnblogs.com/cmt/p/11949207.html
Copyright © 2011-2022 走看看