다음을 통해 공유


IIS 구성 설정 적용

기본적으로 SOAP, HTTP 및 HTTP 기반 WCF 어댑터(일반적으로 .NET)는 특정 대상 서버에 instance 각 BizTalk 호스트에서 두 개의 동시 HTTP 연결만 엽니다. 예를 들어 에 메시지를 http://www.contoso.com/SomeWebService.asmx보내는 SOAP 송신 포트가 있는 경우 기본적으로 각 BizTalk Server 실행되는 각 호스트 instance 전송해야 하는 메시지 수에 관계없이 두 개의 동시 HTTP 연결만 www.contoso.com 열립니다.

이 설정은 HTTP 1.1 사양에 대한 IETF RFC를 준수하며 사용자 시나리오에 적합하지만 높은 처리량 서버에서 서버 통신으로 최적화되지는 않습니다. 기본 설정은 각 대상 서버에 대한 아웃바운드 SOAP 및 HTTP 호출을 각 BizTalk Server 호스트 instance 두 개의 동시 전송으로 효과적으로 제한합니다.

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

ASP.NET 2.0이 통합 모드의 IIS 7.0에서 호스트되는 경우 스레드 사용은 IIS 6.0 또는 클래식 모드의 IIS 7.0과 다르게 처리됩니다. ASP.NET 2.0이 통합 모드에서 IIS 7.0에서 호스트되는 경우 ASP.NET 2.0은 동시에 실행되는 스레드 수 대신 동시에 실행되는 요청 수를 제한합니다. 동기 시나리오의 경우 요청 수가 스레드 수와 동일하기 때문에 스레드 수가 간접적으로 제한됩니다. 그러나 비동기 시나리오의 경우 스레드보다 훨씬 더 많은 요청이 있을 수 있으므로 요청 및 스레드 수가 매우 다를 수 있습니다. 통합 모드에서 IIS 7.0에서 ASP.NET 2.0을 실행하면 machine.config "httpRuntime" 요소의 minFreeThreads 및 minLocalRequestFreeThreads가 무시됩니다. IIS 7.0 통합 모드의 경우 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>

일반적으로 MaxConcurrentRequestsPerCPU는 5000과 같이 매우 큰 값으로 설정해야 합니다.

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

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

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

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

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

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

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

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

IIS ASP 디버깅은 프로덕션 환경에서 사용하지 않도록 설정해야 합니다. IIS ASP 디버깅을 사용하지 않도록 설정하려면 다음 단계를 수행합니다.

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

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

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

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

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

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

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

프로세서당 스레드 수 제한 값을 늘리려면 다음 단계를 수행합니다.

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

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

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

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

참고

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

참고

IIS 7.0의 ASP 스레드당 프로세서 제한 속성은 IIS 6.0 ASPProcessorThreadMax ASP 메타베이스 설정을 대체합니다. IIS 6.0 ASPProcessorThreadMax ASP 메타베이스 설정에 대한 자세한 내용은 MSDN에서 ASP 메타베이스 설정 튜닝 (https://go.microsoft.com/fwlink/?LinkId=158834)을 참조하세요.

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

참고

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

참고

IIS 7.0의 ASP 큐 길이 속성은 IIS 6.0 AspRequestQueueMax ASP 메타베이스 설정을 대체합니다. IIS 6.0 AspRequestQueueMax ASP 메타베이스 설정에 대한 자세한 내용은 MSDN에서 ASP 메타베이스 설정 튜닝 (https://go.microsoft.com/fwlink/?LinkId=158834)을 참조하세요.

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)를 참조하세요.

참고 항목

검사 목록: BizTalk Server 구성