max worker threads 서버 구성 옵션 구성Configure the max worker threads Server Configuration Option

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 또는 을 사용하여 SQL ServerSQL Server에서 SQL Server Management StudioSQL Server Management Studiomax worker threads Transact-SQLTransact-SQL 서버 구성 옵션을 구성하는 방법에 대해 설명합니다.This topic describes how to configure the max worker threads server configuration option in SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. max worker threads 옵션은 SQL ServerSQL Server 프로세스에 사용할 수 있는 작업자 스레드 수를 구성합니다.The max worker threads option configures the number of worker threads that are available to SQL ServerSQL Server processes. SQL ServerSQL Server 는 운영 체제의 네이티브 스레드 서비스를 사용하여 하나 이상의 스레드가 SQL ServerSQL Server 에서 지원하는 각 네트워크를 동시에 지원하고 또 다른 스레드가 데이터베이스 검사점을 처리하고 스레드 풀이 모든 사용자를 처리하도록 합니다. uses the native thread services of the operating systems so that one or more threads support each network that SQL ServerSQL Server supports simultaneously, another thread handles database checkpoints, and a pool of threads handles all users. max worker threads 의 기본값은 0입니다.The default value for max worker threads is 0. 이 값을 사용하면 SQL ServerSQL Server 를 시작할 때 작업자 스레드 수가 자동으로 구성됩니다.This enables SQL ServerSQL Server to automatically configure the number of worker threads at startup. 기본 설정은 대부분의 시스템에 적합합니다.The default setting is best for most systems. 그러나 시스템 구성에 따라 max worker threads 를 특정 값으로 설정하면 성능이 향상되기도 합니다.However, depending on your system configuration, setting max worker threads to a specific value sometimes improves performance.

항목 내용In This Topic

시작하기 전 주의 사항Before You Begin

제한 사항Limitations and Restrictions

  • 실제 쿼리 요청 수가 max worker threads에 설정된 값보다 적으면 각 쿼리 요청마다 스레드 하나가 사용됩니다.When the actual number of query requests is less than the amount set in max worker threads, one thread handles each query request. 그러나 실제 쿼리 요청 수가 max worker threads에 설정된 값보다 많아지면 SQL ServerSQL Server 가 다음에 사용할 수 있는 작업자 스레드가 요청을 처리할 수 있도록 작업자 스레드를 풀링합니다.However, if the actual number of query request exceeds the amount set in max worker threads, SQL ServerSQL Server pools the worker threads so that the next available worker thread can handle the request.

권장 사항Recommendations

  • 이 옵션은 고급 옵션으로, 숙련된 데이터베이스 관리자나 공인된 SQL ServerSQL Server 기술 지원 담당자만 변경해야 합니다.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server technician. 성능 문제가 의심되는 경우 작업자 스레드 가용성 문제는 아닙니다.If you suspect that there is a performance problem, it is probably not the availability of worker threads. 원인은 작업자 스레드를 대기하게 하는 I/O 관련 문제일 가능성이 높습니다.The cause is more likely something like I/O that is causing the worker threads to wait. 최대 작업자 스레드 설정이 변경하기 전에 성능 문제의 근본 원인을 찾는 것이 가장 좋습니다.It is best to find the root cause of a performance issue before you change the max worker threads setting.

  • 스레드 풀링을 사용하면 많은 클라이언트가 서버에 연결되어 있을 때 성능이 최적화됩니다.Thread pooling helps optimize performance when large numbers of clients are connected to the server. 보통 각 쿼리 요청마다 별도의 운영 체제 스레드가 생성됩니다.Usually, a separate operating system thread is created for each query request. 그러나 서버에 대한 연결 수가 수백 개인 경우 쿼리 요청별로 스레드를 하나씩 사용하면 시스템 리소스를 상당히 많이 소비하게 될 수 있습니다.However, with hundreds of connections to the server, using one thread per query request can consume large amounts of system resources. max worker threads 옵션을 사용하면 SQL ServerSQL Server 에서 작업자 스레드 풀을 만들어 많은 쿼리 요청을 처리할 수 있으므로 성능이 향상됩니다.The max worker threads option enables SQL ServerSQL Server to create a pool of worker threads to service a larger number of query requests, which improves performance.

  • 다음 표에서는 다양한 CPU 조합과 SQL ServerSQL Server버전에 대해 자동으로 구성되는 최대 작업자 스레드 수를 보여 줍니다.The following table shows the automatically configured number of max worker threads for various combinations of CPUs and versions of SQL ServerSQL Server.

    CPU 수Number of CPUs 32비트 컴퓨터32-bit computer 64비트 컴퓨터64-bit computer
    <4개 이하 프로세서<= 4 processors 256256 512512
    8개의 프로세서8 processors 288288 576576
    16개의 프로세서16 processors 352352 704704
    32개의 프로세서32 processors 480480 960960
    64개의 프로세서64 processors 736736 14721472
    128개의 프로세서128 processors 42244224 44804480
    256개의 프로세서256 processors 83208320 85768576

    다음 수식 사용:Using the following formula:

    CPU 수Number of CPUs 32비트 컴퓨터32-bit computer 64비트 컴퓨터64-bit computer
    <4개 이하 프로세서<= 4 processors 256256 512512
    > 4개의 프로세서> 4 processors 256 + ((논리 CPU 수 - 4) * 8)256 + ((logical CPU's - 4) * 8) 512 + ((논리 CPU 수 - 4) * 8)512 + ((logical CPU’s - 4) * 8)

    참고

    SQL ServerSQL Server 32비트 운영 체제에 더 이상 설치할 수 없습니다. can no longer be installed on a 32-bit operating system. SQL Server 2014SQL Server 2014 및 이전 버전을 실행하는 고객을 돕기 위해 32비트 컴퓨터 값을 나열합니다.32-bit computer values are listed for the assistance of customers running SQL Server 2014SQL Server 2014 and earlier. 32비트 컴퓨터에서 실행 중인 SQL ServerSQL Server 인스턴스의 최대 작업자 스레드 수는 1024로 설정하는 것이 좋습니다.We recommend 1024 as the maximum number of worker threads for an instance of SQL ServerSQL Server that is running on a 32-bit computer.

    참고

    64개가 넘는 CPU 사용에 대한 권장 사항은 64개를 초과하는 CPU가 있는 컴퓨터에서 SQL Server를 실행하기 위한 최선의 방법을 참조하세요.For recommendations on using more than 64 CPUs, refer to Best Practices for Running SQL Server on Computers That Have More Than 64 CPUs.

  • 장기 실행 쿼리의 모든 작업자 스레드가 활성 상태이면 작업자 스레드가 완료되어 사용 가능 상태가 되기 전에는 SQL ServerSQL Server 가 응답하지 않을 수 있습니다.When all worker threads are active with long running queries, SQL ServerSQL Server might appear unresponsive until a worker thread completes and becomes available. 이는 오류는 아니지만 바람직한 상태는 아닙니다.Although this is not a defect, it can sometimes be undesirable. 프로세스가 응답할 수 없고 새 쿼리를 처리할 수 없으면 DAC(관리자 전용 연결)를 사용하여 SQL ServerSQL Server 에 연결한 다음 해당 프로세스를 중지합니다.If a process appears to be unresponsive and no new queries can be processed, then connect to SQL ServerSQL Server using the dedicated administrator connection (DAC), and kill the process. 이를 방지하려면 max worker threads 수를 증가시킵니다.To prevent this, increase the number of max worker threads.

    최대 작업자 스레드 수 서버 구성 옵션은 가용성 그룹, Service Broker, 잠금 관리자 등의 모든 시스템 태스크에 필요한 스레드 수를 고려하지 않습니다.The max worker threads server configuration option does not take into account threads that are required for all the system tasks such as Availibility Groups, Service Broker, Lock Manager, and others. 다음 쿼리는 구성된 스레드 수를 초과할 경우 추가 스레드를 생성한 시스템 태스크에 대한 정보를 제공합니다.If the number of threads configured are being exceeded, the following query will provide information about the system tasks that have spawned the additional threads.

    SELECT  s.session_id, r.command, r.status,  
    r.wait_type, r.scheduler_id, w.worker_address,  
    w.is_preemptive, w.state, t.task_state,  
    t.session_id, t.exec_context_id, t.request_id  
    FROM sys.dm_exec_sessions AS s  
    INNER JOIN sys.dm_exec_requests AS r  
    ON s.session_id = r.session_id  
    INNER JOIN sys.dm_os_tasks AS t  
    ON r.task_address = t.task_address  
    INNER JOIN sys.dm_os_workers AS w  
    ON t.worker_address = w.worker_address  
    WHERE s.is_user_process = 0;  
    

보안Security

사용 권한Permissions

매개 변수 없이 또는 첫 번째 매개 변수만 사용하여 sp_configure 를 실행할 수 있는 권한은 기본적으로 모든 사용자에게 부여됩니다.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. 구성 옵션을 변경하거나 RECONFIGURE 문을 실행하는 두 매개 변수를 사용하여 sp_configure 를 실행하려면 사용자에게 ALTER SETTINGS 서버 수준 권한이 있어야 합니다.To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. sysadminserveradmin 고정 서버 역할은 ALTER SETTINGS 권한을 암시적으로 보유하고 있습니다.The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

사용 중 SQL Server Management StudioSQL Server Management StudioUsing SQL Server Management StudioSQL Server Management Studio

최대 작업자 스레드 수 옵션을 구성하려면To configure the max worker threads option

  1. 개체 탐색기에서 서버를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.In Object Explorer, right-click a server and select Properties.

  2. 프로세서 노드를 클릭합니다.Click the Processors node.

  3. max worker threads 입력란에 128~32,767 범위의 값을 입력하거나 선택합니다.In the Max worker threads box, type or select a value from 128 through 32,767.

max worker threads 옵션을 사용하여 SQL ServerSQL Server 프로세스에 사용할 수 있는 작업자 스레드 수를 구성할 수 있습니다.Use the max worker threads option to configure the number of worker threads available to SQL ServerSQL Server processes. 대부분의 시스템에는 max worker threads 의 기본 설정을 사용하는 것이 최상의 방법입니다.The default setting for max worker threads is best for most systems. 그러나 시스템 구성에 따라 max worker threads 를 더 작은 값으로 설정하면 성능이 향상되기도 합니다.However, depending on your system configuration, setting max worker threads to a smaller value sometimes improves performance. 자세한 내용은 이 페이지의 권장 사항을 참조하세요.See Recommendations in this page for more information.

Transact-SQL 사용Using Transact-SQL

최대 작업자 스레드 수 옵션을 구성하려면To configure the max worker threads option

  1. 데이터베이스 엔진Database Engine에 연결합니다.Connect to the 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.From the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 이 예제에서는 sp_configure 를 사용하여 max worker threads 옵션을 900으로 구성하는 방법을 보여 줍니다.This example shows how to use sp_configure to configure the max worker threads option to 900.

USE AdventureWorks2012 ;  
GO  
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE ;  
GO  
EXEC sp_configure 'max worker threads', 900 ;  
GO  
RECONFIGURE;  
GO  

후속 작업: 최대 작업자 스레드 수 옵션을 구성한 후Follow Up: After you configure the max worker threads option

데이터베이스 엔진Database Engine를 다시 시작할 필요 없이 RECONFIGURE을 실행하면 변경 사항이 즉시 적용됩니다.The change will take effect immediately after executing RECONFIGURE, without requiring the 데이터베이스 엔진Database Engine to restart.

관련 항목:See Also

서버 구성 옵션 (SQL Server) RECONFIGURE (Transact-SQL) Server Configuration Options (SQL Server) RECONFIGURE (Transact-SQL)
서버 구성 옵션(SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
데이터베이스 관리자를 위한 진단 연결Diagnostic Connection for Database Administrators