오늘은 모니터 CPU에 몇 가지 예외, 시스템 및 데이터베이스 인스턴스 소비 (인스턴스 CPU 사용률)에 의해 소비, 아래 그림과 같이 CPU의 CPU (O / S CPU 사용률) 큰 액세스 할을하여 SQL Server 데이터베이스 인스턴스를 발견, 로그인 서버 점검 발견 데이터베이스 메일 엔진 프로세스는 CPU 리소스 작업의 20 %를 소비한다. 그러나 많은 CPU 리소스를 소모하는 것을 계속한다.
우선 나는 약 미친 데이터베이스 메일이의 경우가 있는지 생각? 만난 관련된 경우 개발자가 스크립트 로직 버그 데이터베이스 메일 엔진 프로세스를 일으키는 원인이 짧은 전자 메일 화가의 결과로 발생하는 업데이트하기 때문에, 이전에 CPU 리소스, 다음 스크립트와 체크를 많이 소모하기 때문에. 헤어, 길의 시간 이내에 200 메시지에 대한 대부분에서 발견 그래서 상황을 배제
SELECT CONVERT ( VARCHAR (13) send_request_date 120)
, COUNT (*)
FROM msdb.dbo.sysmail_allitems WITH (NOLOCK)
WHERE send_request_date> = CONVERT (DATETIME, '2020년 1월 27일 0시 0분 0초' , 120)
AND send_request_date <= CONVERT (DATETIME, '2020년 3월 14일 0시 0분 0초' , 120)
GROUP BY의 CONVERT ( VARCHAR (13) send_request_date 120)
ORDER BY CONVERT ( VARCHAR (13) send_request_date, 120);
2 : 시스템 오류 로그와 오류 로그 DatabaseMail 시험은 더 이상 결과가 없습니다.
3 : 버그가 발생했습니다.
당신이 메일을 많이 보내 후 데이터베이스 메일에서 SQL 서버 2016에 도입 된 공식 문서가있다, 높은 CPU 사용률이 발생할 수 있습니다. 이 관련 정보 SQL 서버 2014 버그에서 공식 문서,하지만 마이크로 소프트의 소변을 발견하지 않았지만 그러나 데이터베이스 인스턴스는 기본적으로이 버그 가능성이 높습니다, SQL 서버 2014 (12.0.5000.0)입니다. 때문에 관련 문서의 부족으로, 현재 버전이 버그를 발견하지 않았습니다 수 있습니다. 그것은이 버그를 잃었하지 않을 수 있습니다 수정 (나는 이것을 언급하지 않았다 패치 목록을 모두 확인).
https://support.microsoft.com/en-nz/help/3197879/fix-sql-server-2016-database-mail-causes-high-cpu-usage-after-many-ema
그리고 인터넷은 친구들이 동일한 경우를 만난 것 같다.
솔루션
SQL 서버 2016 경우 SQL Server에 대한 누적 업데이트 2 2016 SP1 이후에 해결 될 수 패치. 그러나 SQLServer에 2014 년에, 필요가 일시적으로 메일 서비스를 다시 시작하여 문제를 해결합니다.
EXEC MSDB . DBO . sysmail_stop_sp
EXEC MSDB . DBO . sysmail_start_sp