sql server cpu占用率高_sqlserver占用内存过大

sql server cpu占用率高_sqlserver占用内存过大今天发现监控的一个SQL Server数据库实例的CPU有些异常,如下所示,系统消耗的CPU(O/S CPU Utilization)和数据库实例消耗的CPU(Instance CPU Utiliza

SQL Server 2014下Database Mail Engine进程消耗大量CPU资源

 

今天发现监控的一个SQL Server数据库实例的CPU有些异常,如下所示,系统消耗的CPU(O/S CPU Utilization)和数据库实例消耗的CPU(Instance CPU Utilization)有较大出入,登录服务器检查,发现Database Mail Engine进程消耗了20%作业的CPU资源。而且是持续消耗这么多CPU资源。

 

clip_image001[12]

 

 

 

clip_image002[12]

 

首先我想的是数据库是否有狂发邮件的情况呢? 因为之前遇到过相关案例,由于开发人员更新脚本引起的一个逻辑bug,导致短时间狂发邮件,从而引起这个Database Mail Engine 进程消耗大量的CPU资源,用下面脚本检查。发现一小时内最多发大概200封邮件的样子,所以排除了这个情况

 

SELECT CONVERT(VARCHAR(13), send_request_date, 120)

代码100分

代码100分      ,COUNT(*) 

FROM msdb.dbo.sysmail_allitems WITH(NOLOCK)

代码100分WHERE send_request_date >= CONVERT(DATETIME, "2020-01-27 00:00:00", 120)

  AND send_request_date <= CONVERT(DATETIME, "2020-03-14 00:00:00", 120)

GROUP BY CONVERT(VARCHAR(13), send_request_date, 120)

ORDER BY CONVERT(VARCHAR(13), send_request_date, 120);

 

clip_image003[12]

 

 

2: 检查DatabaseMail的错误日志和系统错误日志没有发现异常情况。

 

3: Bug引起的。

 

    官方文档有介绍,在SQL Server 2016中 database mail在发送大量邮件后,可能导致较高的CPU利用率。 但是这个数据库实例是SQL Server 2014(12.0.5000.0),虽然官方文档没有找到SQL Server 2014下有这个Bug的相关资料,但是以微软的尿性,基本上也很有可能就是这个Bug。由于缺少相关文档,有可能当前版本还没有发现这个Bug。所以可能根本没有Fix掉这个Bug(我查了一下所有的补丁列表,完全没有提及这个)。

 

    https://support.microsoft.com/en-nz/help/3197879/fix-sql-server-2016-database-mail-causes-high-cpu-usage-after-many-ema

 

    而且网上似乎也有一些网友碰到相同的案例。

 

https://feedback.azure.com/forums/908035-sql-server/suggestions/33831496-sql-server-2014-database-mail-causes-high-cpu-usag

 

 

解决方案

 

如果是SQL Server 2016,打上补丁Cumulative Update 2 for SQL Server 2016 SP1后即可解决。但是SQLServer 2014下,需要通过重启邮件服务临时解决问题。

 

EXEC msdb.dbo.sysmail_stop_sp

 

EXEC msdb.dbo.sysmail_start_sp

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9548.html

(0)
上一篇 2023-02-05
下一篇 2023-02-06

相关推荐

  • api代理从python(api合作是什么)

    api代理从python(api合作是什么)调用 api ,就是给 api 发个请求,一般是 get 或者 post。当然发请求的时候一般都要传参的,具体你搜下就有了,比如 hearders ,data 等

    2023-11-30
    113
  • mysql事务和锁的关系_mysql事务注意什么

    mysql事务和锁的关系_mysql事务注意什么事务概述 当多个用户访问同一份数据时,一个用户在更改数据的过程中,可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态变为另外一个一致性状态,使用事务处理是非常必要的,事务具有以下四

    2023-05-14
    131
  • baiduwenku简介

    baiduwenku简介随着数字化时代的到来,传统的纸质文献已经逐渐被电子文献所替代。我们可以更加便捷快速地获取各种文献资料、阅读、编辑和分享文献。其中,百度文库(Baidu Wenku)是一个非常受欢迎的在线文献分享和编辑平台,致力于为广大用户提供高质量的文献资源和协同编辑服务。

    2024-07-12
    34
  • 如何在线获取Python相关问题的答案

    如何在线获取Python相关问题的答案Python官方文档是解决Python相关问题的最好的参考资料之一。可以通过以下网址来访问官方文档:

    2023-12-13
    116
  • Python中append函数的用法和功能

    Python中append函数的用法和功能Python中的bappend/b函数是一个非常常用的函数,它用于向列表中添加元素。本文将从多个方面对Python中的bappend/b函数进行详细的阐述和说明。

    2024-01-24
    96
  • centos7在线yum安装mysql时官方镜像下载过慢的解决方案

    centos7在线yum安装mysql时官方镜像下载过慢的解决方案帮客户调试数据库,搭建一测试环境,centos7最小化安装后,在线安装mysql。 步骤: 1、 2、 3、yum -y install mysql-community-server 其中第3步因为连

    2022-12-20
    142
  • 学习flake8静态代码检查工具

    学习flake8静态代码检查工具在软件开发领域,代码的质量很重要,良好的代码质量可以提高代码的可读性、可维护性和安全性。flake8是一种静态代码分析工具,可以帮助程序员检查和维护代码的规范性和质量,从而提高代码的质量。

    2024-06-03
    51
  • Python List长度求取方法

    Python List长度求取方法Python中的List是一种灵活而强大的序列数据类型,存储多个元素并且可以进行索引和切片。计算List的长度是常见的操作,可以使用Python内置函数len()来获得List的长度。例如:

    2024-01-06
    111

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注