IIS 응용 프로그램 풀 최대 작업자 프로세스와 구성 요소 서비스 응용 프로그램 풀링 간의 관계

IIS 응용 프로그램 풀 최대 작업자 프로세스와 구성 요소 서비스 응용 프로그램 풀링 간의 관계

우리는 라이브 환경에 새로운 앱을 배포하는 중입니다.

앱 서버는 EntityFramework를 사용하고 .NET COM+가 아닌 애플리케이션을 여러 번 호출하는 IIS 호스팅 .NET 애플리케이션을 실행하고 있습니다.

IIS 응용 프로그램 풀 내의 최대 작업자 프로세스 수를 수정하여 순수 .NET 코드의 성능에 영향을 줄 수 있었지만 제 질문은 작업자 프로세스 수가 구성 요소 서비스에 있는 응용 프로그램 풀의 풀 크기와 어떻게 관련되는지입니다. ? 같은 것들:

  • 이 두 값 사이의 1:1 관계를 목표로 해야 할까요?
  • 다중 작업자 스레드를 피해야 합니까?

감사하게도 통찰력을 얻었습니다 ...

답변1

두 풀의 작업자 프로세스 수는 직접적인 관련이 없습니다. 설정해야 할 것은 각 풀의 체류 시간입니다. 따라서 IIS 작업자가 바쁘고 전체 시간 중 아주 작은 부분만 COM 응용 프로그램에 소비된다면 COM 스레드가 성능에 병목 현상을 일으킬 가능성은 없습니다.

개별 풀의 크기를 제어하는 ​​방법을 결정하려면 스트레스 상황에서 활성 스레드 수를 측정해 보십시오.

또한 IIS 작업자 프로세스는 프로세서 활용도 이외의 기준에 따라 재활용된다는 점도 고려하세요. 이는 호출 간에 데이터를 공유하는 능력에 상당한 영향을 미칠 수 있으며 직접적인 성능에 큰 영향을 미치려는 시도를 무너뜨릴 수 있습니다.

단일 .NET 쿼리에서 여러 요청을 집계할 수 있는 얇은 COM 래퍼를 고려하면 .NET에서 COM으로 브리징하는 비용을 줄이는 것이 더 좋습니다. 또한 여러 COM 메서드를 풀의 단일 스레드로 통합하는 부작용이 있을 수도 있습니다.

관련 정보