SQL Server Worker Thread 기본 계산
· Version : SQL Server
SQL Server 2017부터는 소규모 환경을 고려하여 SQL Server의 기본 worker thread 수가 약간 변경되었다. 소규모 환경에서 SQL Server를 실행하는 경우 SQL Server는 worker thread를 줄인다. X64 설치의 경우 sp_configure ‘max worker threads’ 값을 0으로 설정하면 SQL Server는 아래 계산 공식을 사용한다.
Default | 512 |
Small Environment | 256 |
소규모 환경에서는 SQL Server는 항상 worker thread 256을 사용한다. 더 큰 환경에서 실행하면 worker thread는 512가 기본값이며 CPU 수에 따라 조정된다.
CPU가 4개보다 많으면 worker thread 수는512 까지 증가하며, CPU 수에 따라32또는 16씩 증가하여 최대 512까지 증가한다. 만약 시스템에 64개 이상의 CPU가 있으면 추가 worker thread는 CPU당 32 worker thread가 증가한다.
이러한 설계는 CPU 및 메모리 리소스가 적은 소규모 환경 및 더 큰 CPU 및 메모리를 사용하는 시스템을 고려한다. worker thread는 보이는 스케줄러에만 적용된다. 숨겨진 스케줄러 및 DAC (Dedicated Admin Connection) 스케줄러는 계산에 영향을 받지 않는다.
[참고자료]
https://blogs.msdn.microsoft.com/bobsql/2019/02/10/sql-server-worker-thread-default-calculation/
2019-09-17/ Sungwook Kang / http://sungwookkang.com
SQL Server2017, worker thread
출처: https://sqlmvp.tistory.com/1340 [Database Lab]