HADR 높은 작업자 스레드 사용량


10

HADR 풀에있는 가용성 그룹의 작업자 스레드 수가 복제 본당 " 일반적으로 3-10 개의 공유 스레드가 있습니다 "를 초과하여 증가하는 이유는 무엇 입니까?

어떤 경우에는 3 개의 가용성 그룹과 총 10 개의 데이터베이스가있는 300 개 이상의 스레드 사용이 관찰되었습니다. SQL Server 2014 SP1

우리의 리드는 보조 복제본에 대한 백업, 기본 복제본에 대한 높은 활동, 보조 복제본에 대한 보고서입니다.

AG는 VMware의 데이터 센터에 있습니다. 총 16 개의 스케줄러, 일반적인 작업자 스레드는 200 개 미만입니다. 서버의 max_dop 는 2입니다.

  • 3 AG, 10 DB, 각각 4 개의 복제본-기본, 2 개 읽기 전용, 1 개 읽기 불가.
  • 보조 1 개는 동기화, 2 개는 비동기
  • 큰 멀티 호스트 클러스터에서 물리적으로 32 개의 코어에 16 개의 vcore가 있습니다.
  • 과도한 프로비저닝이 없습니다.
  • 다른 작은 VM 4-8 코어는 함께 배치되지만 CPU를 누르지 않습니다.

작업자 스레드가 급증하여 서비스 거부가 발생했습니다. 작업자 스레드가 제한을 초과 할 수 있으므로 작업자 스레드를 AG에 부여하는 것이 우리의 가정입니다.

컨텍스트에서 읽은 SQL Server 프리미어 필드 엔지니어 블로그의 아래 링크는 나에게 완전한 답변을 제공하지 않습니다.


3
보고있는 내용의 스크린 샷 예를 게시 할 수 있습니까? AG 스레드와 달리 작업자 스레드를 일반적으로 쿼리하는 것처럼 여기에 뭔가가 보이지 않습니다. (그리고 다른 작업자 스레드가 너무뿐만 아니라 AG 것들을 한계를 건너 수 있습니다.)
브렌트 Ozar에게

비슷한 문제를 사냥하고 있습니다. MaxDop 문제로 해결했습니다. IndexMaintenance에 Ola Hallengreens 스크립트를 사용하고 있으며 MaxDOP 설정이 NULL로 설정되었습니다. 요점은 MaxDOP 2를 무시하는 쿼리가 올 수 있습니까?
카스퍼 브란덴부르크

이것에 대한 해결책을 얻었습니까?
trusha

답변:


-1

DC가 VM에 있으므로 디스크 성능이 저하 된 것 같습니다. 디스크 성능이 좋지 않으면 보조 디스크에서 로그 쓰기 시간이 느려져 보조 복제본에서 기본 복제본에 대한 승인이 느려질 수 있습니다 (작업자 스레드 소진).

보조 복제본의 디스크 대기 시간으로 인해 HADR 동기화 커밋 프로세스가 증가하여 보조 스레드가 트랜잭션을 승인하기를 기다리는 동안 기본 보류 열린 스레드가 발생할 수 있습니다.

교착 상태 스케줄러의 오류 로그를 확인하고 PerfMon에서 일부 IO 메트릭을 수집하여 디스크 대기 시간 및 디스크 큐 길이를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.