다음을 통해 공유


<applicationPool> 요소(웹 설정)

ASP.NET 애플리케이션이 IIS 7.0 이상 버전의 통합 모드에서 실행되는 경우 ASP.NET에서 프로세스 차원의 동작을 관리하는 데 사용되는 구성 설정을 지정합니다.

중요

이 요소와 지원하는 기능은 ASP.NET 애플리케이션이 IIS 7.0 이상 버전에서 호스트되는 경우에만 작동합니다.

<configuration>
  <system.web>
    <applicationPool>

구문

<applicationPool
    maxConcurrentRequestsPerCPU="5000"
    maxConcurrentThreadsPerCPU="0"
    requestQueueLimit="5000" />  

특성 및 요소

다음 섹션에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성 Description
maxConcurrentRequestsPerCPU ASP.NET이 CPU당 허용하는 동시 요청 수를 지정합니다.
maxConcurrentThreadsPerCPU 각 CPU에 대해 애플리케이션 풀에 대해 실행할 수 있는 동시 스레드 수를 지정합니다. 이는 요청을 처리하기 위해 CPU당 사용할 수 있는 관리형 스레드 수를 제한할 수 있으므로 ASP.NET 동시성을 제어하는 다른 방법을 제공합니다. 기본적으로 이 설정은 0입니다. 즉, CLR 스레드 풀은 만들 수 있는 스레드 수도 제한하지만 ASP.NET에서는 CPU당 만들 수 있는 스레드 수를 제한하지 않습니다.
requestQueueLimit 단일 프로세스에서 ASP.NET을 위해 큐에 대기할 수 있는 최대 요청 수를 지정합니다. 두 개 이상의 ASP.NET 애플리케이션이 단일 애플리케이션 풀에서 실행되는 경우 애플리케이션 풀의 모든 애플리케이션에 대해 수행되는 누적 요청 집합에는 이 설정이 적용됩니다.

자식 요소

없음

부모 요소

요소 Description
<system.web> ASP.NET에서 호스트 애플리케이션과 상호 작용하는 방법에 대한 정보를 포함합니다.

설명

통합 모드에서 IIS 7.0 이상 버전을 실행하는 경우 이 요소 조합을 사용하면 애플리케이션이 IIS 애플리케이션 풀에서 호스트될 때 ASP.NET에서 스레드 및 큐 요청을 관리하는 방법을 구성할 수 있습니다. IIS 6을 실행하거나 클래식 모드 또는 ISAPI 모드에서 IIS 7.0을 실행하는 경우 이러한 설정은 무시됩니다.

applicationPool 설정은 특정 버전의 .NET Framework에서 실행되는 모든 애플리케이션 풀에 적용됩니다. 설정은 aspnet.config 파일에 포함되어 있습니다. 이 파일의 버전은 .NET Framework 버전 2.0 및 4.0입니다. (.NET Framework 버전 3.0 및 3.5는 aspnet.config 파일을 버전 2.0과 공유합니다.)

중요

Windows 7에서 IIS 7.0을 실행하는 경우 모든 애플리케이션 풀에 대해 별도의 aspnet.config 파일을 구성할 수 있습니다. 이렇게 하면 각 애플리케이션 풀에 대한 스레드의 성능을 조정할 수 있습니다.

maxConcurrentRequestsPerCPU 설정의 경우 .NET Framework 4의 기본 설정인 “5000”은 실제로 CPU당 5,000개 이상의 요청이 없는 한 ASP.NET에서 제어되는 요청 제한을 효과적으로 해제합니다. 기본 설정은 CPU당 동시성을 자동으로 관리하기 위해 CLR 스레드 풀에 종속됩니다. 비동기 요청 처리를 광범위하게 사용하거나 네트워크 I/O에서 많은 장기 실행 요청이 차단된 애플리케이션은 .NET Framework 4에서 증가된 기본 제한을 활용할 수 있습니다. maxConcurrentRequestsPerCPU를 0으로 설정하면 ASP.NET 요청을 처리하기 위해 관리형 스레드의 사용이 해제됩니다. 애플리케이션이 IIS 애플리케이션 풀에서 실행되는 경우 요청은 IIS I/O 스레드에 유지되므로 IIS 스레드 설정에 따라 동시성이 제한됩니다.

requestQueueLimit설정은 ASP.NET 응용 프로그램의 web.config 파일에 설정된 processModel 요소의 requestQueueLimit특성과 동일한 방식으로 작동합니다. 그러나 aspnet.config 파일의 requestQueueLimit 설정은 Web.config 파일의 requestQueueLimit 설정을 재정의합니다. 즉, 두 특성이 모두 설정된 경우(기본적으로 true임) aspnet.config 파일의 requestQueueLimit 설정이 우선합니다.

예제

다음 예제에서는 다음과 같은 상황에서 aspnet.config 파일에서 ASP.NET 프로세스 차원의 동작을 구성하는 방법을 보여 줍니다.

  • 애플리케이션은 IIS 7.0 애플리케이션 풀에서 호스트됩니다.

  • IIS 7.0이 통합 모드에서 실행 중입니다.

  • 애플리케이션은 .NET Framework 3.5 SP1 이상 버전을 사용하고 있습니다.

예제의 값은 기본값입니다.

<configuration>  
  <system.web>  
    <applicationPool
        maxConcurrentRequestsPerCPU="5000"  
        maxConcurrentThreadsPerCPU="0"
        requestQueueLimit="5000" />  
  </system.web>  
</configuration>  

참고 항목