BizTalk Server 대한 Low-Latency 시나리오 최적화
기본적으로 BizTalk Server 짧은 대기 시간이 아닌 처리량에 최적화되어 있습니다. 이 가이드에 사용되는 테스트 시나리오의 BizTalk Server 다음과 같은 최적화가 적용되었습니다.
참고
이러한 최적화는 대기 시간을 개선하지만 전체 처리량에 약간의 비용이 들 수 있습니다.
BizTalk Server 호스트 내부 메시지 큐 크기 늘리기
각 BizTalk 호스트에는 자체 내부 메모리 내 큐가 있습니다. 대기 시간이 짧은 시나리오의 성능을 향상시키려면 이 큐의 크기를 기본값 100에서 1000으로 늘립니다. 내부 메시지 큐 크기의 값을 수정하는 방법에 대한 자세한 내용은 의 BizTalk Server 도움말https://go.microsoft.com/fwlink/?LinkID=120225에서 "기본 호스트 제한 설정을 수정하는 방법"을 참조하세요.
BizTalk Server 관리 데이터베이스의 adm_ServiceClass 테이블에서 MaxReceiveInterval 값 줄이기
BizTalk Server 폴링 메커니즘을 사용하여 메시지 상자의 호스트 큐에서 메시지를 받습니다. BizTalk Management(BizTalkMgmtDb) 데이터베이스의 adm_ServiceClass 테이블에 있는 MaxReceiveInterval 값은 각 BizTalk 호스트 instance MessageBox를 폴링할 때까지 대기하는 최대값(밀리초)입니다. adm_ServiceClass 테이블에는 다음 서비스 유형에 대한 레코드가 포함되어 있습니다.
XLANG/S – BizTalk 오케스트레이션 호스트 인스턴스용
메시징 InProcess – In-Process 호스트 인스턴스용
MSMQT – MSMQT 어댑터 호스트 인스턴스용
메시징 격리 – 프로세스 외 호스트 인스턴스의 경우 HTTP, SOAP 및 특정 WCF 수신 어댑터 처리기에서 사용됩니다.
기본적으로 이 값은 대기 시간이 짧은 대신 처리량에 최적화된 500밀리초로 설정됩니다. 특정 시나리오에서는 이 값을 줄여 대기 시간을 개선할 수 있습니다.
참고
이 값을 변경하면 연결된 서비스 유형의 모든 인스턴스에 영향을 주므로 이 값을 변경하기 전에 모든 호스트 인스턴스에 미치는 영향을 평가해야 합니다.
이 값은 메시지 상자에 처리되지 않은 나머지 메시지가 없는 경우에만 사용됩니다. 메시지 상자에 처리되지 않은 메시지의 일정한 백로그가 있는 경우 BizTalk Server 폴링 지연을 기다리지 않고 메시지를 처리하려고 시도합니다. 모든 메시지가 처리되면 BizTalk Server MaxReceiveInterval에 지정된 값을 사용하여 폴링을 시작합니다.
Messagebox 데이터베이스 인스턴스에 대한 호스트 인스턴스 비율이 높은 BizTalk Server 환경에서 MaxReceiveInterval 값을 줄이면 Messagebox 데이터베이스 instance 있는 SQL Server 컴퓨터에서 과도한 CPU 사용률이 발생할 수 있습니다. 예를 들어 단일 Messagebox 및 > 50개의 호스트 인스턴스가 있는 BizTalk Server 환경에서 MaxReceiveInterval이 낮은 값(<100)으로 감소하면 SQL Server CPU 사용률이 50% 이상으로 올라갈 수 있습니다. 이 현상은 지속적으로 폴링 호스트 큐와 관련된 오버헤드가 중요하기 때문에 발생할 수 있습니다. MaxReceiveInterval을 100보다 작은 값으로 줄이는 경우 이 값이 SQL Server 컴퓨터의 CPU 사용률에 미치는 영향도 평가해야 합니다.