다음을 통해 공유


IIS 성능 최적화

IIS 구성 옵션을 적용하여 IIS 성능 향상

IIS(인터넷 정보 서비스)는 IIS 성능에 영향을 주는 수많은 구성 매개 변수를 노출합니다. 이 항목에서는 이러한 매개 변수 중 몇 가지를 설명하고 IIS 성능을 향상시키기 위해 매개 변수 값을 설정하기 위한 일반적인 지침을 제공합니다.

필수 정보만 기록하거나 IIS 로깅을 완전히 사용하지 않도록 설정

IIS 로깅은 프로덕션 환경에서 최소화되거나 사용하지 않도록 설정해야 합니다. 로깅을 사용하지 않도록 설정하려면 다음 단계를 수행합니다.

  1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

  2. 연결 창에서 클릭하여 사이트를 확장하고 로깅을 사용하지 않도록 설정할 웹 사이트를 선택하고 기능 보기를 클릭한 다음 로깅 기능을 두 번 클릭합니다.

  3. 작업 창에서 사용 안 함을 클릭하여 이 웹 사이트에 대한 로깅을 사용하지 않도록 설정합니다.

프로덕션 환경에서 IIS ASP 디버깅 사용 안 함

IIS ASP 디버깅은 프로덕션 환경에서 사용하지 않도록 설정해야 합니다. IIS ASP 디버깅을 사용하지 않도록 설정하려면 다음 단계를 수행 합니다. 연결 창에서 사이트를 확장하려면 클릭하고 ASP 디버깅을 사용하지 않도록 설정할 웹 사이트를 클릭하여 선택하고 기능 보기를 클릭한 다음 ASP 기능을 두 번 클릭합니다. 컴파일을 확장하고 디버깅 속성을 클릭하여 확장하고 클라이언트 쪽 디버깅 사용서버 쪽 디버깅 사용모두 False로 설정되어 있는지 확인합니다.

  1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

  2. 연결 창에서 사이트를 확장하려면 클릭하고 ASP 디버깅을 사용하지 않도록 설정할 웹 사이트를 선택하고 기능 보기를 클릭한 다음 ASP 기능을 두 번 클릭합니다.

  3. 컴파일을 확장하고 디버깅 속성을 클릭하여 확장하고 클라이언트 쪽 디버깅 사용서버 쪽 디버깅 사용모두 False로 설정되어 있는지 확인합니다.

  4. 필요한 경우 작업 창에서 적용을 클릭합니다.

    웹 애플리케이션에 대한 web.config 파일에서 컴파일 debug="false"> 섹션을 지정하여 <ASP.NET 애플리케이션 및 웹 서비스에 대한 디버깅을 사용하지 않도록 설정합니다.

ASP 스레드당 프로세서 제한 속성 값 조정

ASP 스레드당 프로세서 제한 속성은 IIS에서 만드는 프로세서당 최대 작업자 스레드 수를 지정합니다. 프로세서 사용률이 50% 이상을 충족할 때까지 프로세서당 스레드 수 제한 값을 늘입니다. 이 설정은 웹 애플리케이션의 확장성과 일반적으로 서버의 성능에 큰 영향을 줄 수 있습니다. 이 속성은 동시에 실행할 수 있는 최대 ASP 요청 수를 정의하므로 ASP 애플리케이션이 외부 구성 요소에 대한 확장 호출을 수행하지 않는 한 이 설정은 기본값으로 유지되어야 합니다. 이 경우 프로세서당 스레드 제한 값을 늘릴 수 있습니다. 이렇게 하면 서버가 더 많은 동시 요청을 처리하기 위해 더 많은 스레드를 만들 수 있습니다. 프로세서당 스레드 제한의 기본값은 25입니다. 이 속성의 최대 권장 값은 100입니다.

프로세서당 스레드 수 제한 값을 높이려면 다음 단계를 수행 합니다. 연결 창에서 웹 서버를 선택하고 기능 보기를 클릭한 다음 ASP 기능을 두 번 클릭합니다.

  1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

  2. 연결 창에서 웹 서버를 선택하고 기능 보기를 클릭하여 선택한 다음 ASP 기능을 두 번 클릭합니다.

  3. 동작에서 제한 속성을 확장하려면 프로세서당 스레드 제한을 클릭하고 프로세서당 스레드 제한에 원하는 값을 입력한 다음 작업 창에서 적용을 클릭합니다.

    IIS 7.5/7.0 asp> 요소의 limits> 요소에서 <속성을 수정하는 방법에 대한 자세한 내용은 ASP 제한 <제한()을> 참조하세요.https://go.microsoft.com/fwlink/?LinkId=157483<

참고

이 속성은 서버 수준에서만 적용할 수 있으므로 이 속성을 수정하면 서버에서 실행되는 모든 웹 사이트에 영향을 줍니다.

ASP 큐 길이 속성의 값 조정

이 속성을 튜닝하는 목표는 ASP 요청 큐가 가득 찼을 때 서버가 HTTP 503(Server Too Busy) 오류를 클라이언트에 보내는 빈도를 최소화하면서 적절한 응답 시간을 보장하는 것입니다. ASP Queue Length 속성 값이 너무 낮으면 서버에서 더 큰 빈도로 HTTP 503 오류를 보냅니다. ASP 큐 길이 속성 값이 너무 높으면 실제로 요청이 큐에서 대기 중일 때 서버가 응답하지 않는다고 사용자가 인식할 수 있습니다. 트래픽이 많은 기간 동안 큐를 확인하여 웹 요청 피크 및 계곡의 패턴을 파악해야 합니다. 최대값을 적어두고 ASP 큐 길이 속성의 값을 최대값 바로 위에 설정합니다. 큐를 사용하여 단기 급증을 처리하고, 응답 시간을 보장하고, 지속적인 예기치 않은 급증이 발생할 때 오버로드를 방지하도록 시스템을 제한합니다. ASP 큐 길이 속성을 조정하기 위한 데이터가 없는 경우 큐의 일 대 일 비율을 총 스레드로 설정하는 것이 좋습니다. 예를 들어 ASP 스레드당 프로세서 제한 속성이 25로 설정되어 있고 4개의 프로세서(4 * 25 = 100개 스레드)가 있는 경우 ASP Queue Length 속성을 100으로 설정하고 여기에서 조정합니다.

Queue Length 속성의 값을 늘리려면 다음 단계를 수행합니다.

  1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

  2. 연결 창에서 웹 서버를 선택하고 기능 보기를 클릭하여 선택한 다음 ASP 기능을 두 번 클릭합니다.

  3. 동작 아래에서 제한 속성을 확장하려면 큐 길이를 클릭하고 큐 길이에 원하는 값을 입력한 다음 작업 창에서 적용을 클릭합니다.

    IIS 7.5/7.0 asp> 요소의 limits> 요소에서 <속성을 수정하는 방법에 대한 자세한 내용은 ASP 제한 <제한()을> 참조하세요.https://go.microsoft.com/fwlink/?LinkId=157483<

참고

이 속성은 서버 수준에서만 적용할 수 있으므로 이 속성을 수정하면 서버에서 실행되는 모든 웹 사이트에 영향을 줍니다.

MaxPoolThreads 레지스트리 항목 조정

이 설정은 프로세서당 만들 풀 스레드 수를 지정합니다. 풀 스레드는 요청을 위해 네트워크를 watch 들어오는 요청을 처리합니다. MaxPoolThreads 수에는 ISAPI 애플리케이션에서 사용하는 스레드가 포함되지 않습니다. 일반적으로 프로세서당 20개 이상의 스레드를 만들면 안 됩니다. MaxPoolThreads는 기본값이 4인 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ 있는 REG_DWORD 레지스트리 항목입니다.

WCF 서비스 추적 사용 안 함

SvcConfigEditor.exe(구성 편집기 도구)를 사용하여 프로덕션 환경에서 WCF 서비스 추적을 사용하지 않도록 설정합니다. 구성 편집기 도구에 대한 자세한 내용은 구성 편집기 도구(SvcConfigEditor.exe)(https://go.microsoft.com/fwlink/?LinkID=127070)를 참조하세요.

IIS 7.5/7.0 통합 모드에 대한 ASP.NET 2.0 MaxConcurrentRequests 구성

ASP.NET 2.0이 통합 모드의 IIS 7.5/7.0에서 호스트되는 경우 스레드 사용은 클래식 모드의 IIS 7.5/7.0과 다르게 처리됩니다. ASP.NET 2.0이 통합 모드의 IIS 7.5에서 호스트되는 경우 ASP.NET 2.0은 동시에 실행되는 스레드 수 대신 동시에 실행되는 요청 수를 제한합니다. 동기 시나리오의 경우 요청 수가 스레드 수와 동일하기 때문에 스레드 수가 간접적으로 제한됩니다. 그러나 비동기 시나리오의 경우 스레드보다 훨씬 더 많은 요청이 있을 수 있으므로 요청 및 스레드 수가 매우 다를 수 있습니다. 통합 모드에서 IIS 7.5에서 ASP.NET 2.0을 실행하면 machine.config "httpRuntime" 요소의 minFreeThreads 및 minLocalRequestFreeThreads가 무시됩니다. IIS 7.5 통합 모드의 경우 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0 내의 MaxConcurrentRequestsPerCPU라는 DWORD는 CPU당 동시 요청 수를 결정합니다. 기본적으로 레지스트리 키가 존재하지 않으며 CPU당 요청 수는 12개로 제한됩니다. .NET Framework 3.5 SP1에는 aspnet.config 파일을 통해 IIS 애플리케이션 풀 구성을 지원하는 v2.0 이진 파일에 대한 업데이트가 포함되어 있습니다. 이 구성은 통합 모드에만 적용됩니다(클래식/ISAPI 모드는 이러한 설정을 무시). 기본값이 있는 새 aspnet.config 구성 섹션은 다음과 같습니다.

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

IIS 7.5 통합 모드에서 machine.config 파일의 "processModel" 섹션에 있는 maxWorkerThreads 및 maxIoThreads 매개 변수는 실행 중인 요청 수를 제어하는 데 사용되지 않지만 여전히 ASP.NET 사용하는 CLR 스레드 풀의 크기를 제어하는 데 사용됩니다. machine.config "processModel" 섹션에 "autoConfig=true"(기본 설정)가 있는 경우 애플리케이션 풀은 논리 CPU당 최대 100개의 작업자 스레드(MaxWorkerThreads)를 제공합니다. 따라서 2개의 듀얼 코어 CPU가 있는 일반적인 상용 서버에는 400개의 MaxWorkerThreads가 있습니다. 이는 가장 까다로운 애플리케이션을 제외한 모든 애플리케이션에 충분해야 합니다.

IIS 7.5에서 ASP.NET 스레드 사용량 구성에 대한 자세한 내용은 IIS 7.0의 ASP.NET 스레드 사용량에 대한 Thomas Marquardt 블로그 (https://go.microsoft.com/fwlink/?LinkId=157518)를 참조하세요.

IIS 7.5/7.0 통합 모드에 대한 ASP.NET 4 MaxConcurrentRequests 구성

.NET Framework 4에서는 maxConcurrentRequestsPerCPU에 대한 기본 설정이 5000이며 이는 매우 많은 수이므로 많은 비동기 요청을 동시에 실행할 수 있습니다. 자세한 내용은 applicationPool> 요소(웹 설정)()를 참조<하세요.https://go.microsoft.com/fwlink/?LinkID=205339

IIS 7.5/7.0 통합 모드의 경우 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0 내의 MaxConcurrentRequestsPerCPU라는 DWORD는 CPU당 동시 요청 수를 결정합니다. 기본적으로 레지스트리 키가 존재하지 않으며 CPU당 요청 수는 5000개로 제한됩니다.

IIS HTTP 압축 사용

사용 가능한 대역폭을 보다 효율적으로 사용하려면 IIS HTTP 압축을 사용하도록 설정합니다. HTTP 압축은 콘텐츠가 로컬 스토리지 또는 UNC 리소스에서 제공되는지 여부에 관계없이 압축 사용 브라우저와 IIS 간에 더 빠른 전송 시간을 제공합니다.

  • 웹 서버 수준에서 압축을 구성하려면 다음을 수행합니다.

    1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

    2. 연결 창에서 웹 서버를 선택하고 기능 보기를 클릭하여 선택한 다음 압축 기능을 두 번 클릭합니다.

    3. 원하는 압축 옵션을 설정한 다음 작업 창에서 적용을 클릭합니다.

  • 웹 사이트 수준에서 압축을 구성하려면 다음을 수행합니다.

    1. 시작을 클릭하고 모든 프로그램을 가리킨 다음 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.

    2. 연결 창에서 사이트를 확장하려면 클릭하고 압축을 구성할 웹 사이트를 클릭하여 선택하고 기능 보기를 클릭한 다음 압축 기능을 두 번 클릭합니다.

    3. 원하는 압축 옵션을 설정한 다음 작업 창에서 적용을 클릭합니다.

참고 항목

성능 최적화