관찰 및 권장 사항
테스트 결과 요약
메시징 전용 시나리오의 결과는 하루에 최대 109,382,400개 메시지로 관찰되었습니다. 오케스트레이션 시나리오의 경우 BizTalk Server 실행하는 단일 컴퓨터가 하루에 최대 58,752,000개 메시지를 처리할 수 있음을 나타냅니다. 이러한 결과는 많은 BizTalk Server 솔루션에 배포된 일반 엔터프라이즈급 하드웨어를 사용하여 샌드박스 환경에서 달성되었습니다. 따라서 이러한 결과는 사용자 지정 코드 없이 달성할 수 있는 의 BizTalk Server 성능 유형을 나타냅니다. 고객 솔루션에는 종종 사용자 지정 개발 BizTalk 아티팩트가 포함됩니다. 대부분의 경우 이로 인해 처리 요구 사항이 증가하여 성능에 영향을 줍니다. 이 가이드, 특히 BizTalk Server 애플리케이션 최적화 섹션에 제시된 조언에 따라 사용자 지정 개발 BizTalk Server 아티팩트 구현의 영향을 최소화할 수 있습니다.
다음 표에서는 이 성능 평가에 대한 테스트 결과에 대한 요약을 제공합니다.
시나리오 | 메시징(BizTalk KPI – 초당 처리된 문서) | 메시징(SQL KPI – SQL 프로세서 사용률) | 메시징 대기 시간(초) | 오케스트레이션(BizTalk KPI – 초당 처리되는 문서) | 오케스트레이션(SQL KPI – SQL 프로세서 사용률) | 오케스트레이션 대기 시간(초) |
---|---|---|---|---|---|---|
단일 MessageBox 1 BizTalk Server 컴퓨터 | 초당 처리된 문서 1266개 | 59% SQL CPU 사용률 | 0.06 | 초당 처리된 문서 680개 | 66.5% SQL CPU 사용률 | 0.067 |
단일 MessageBox 2 BizTalk Server 컴퓨터 | 초당 처리된 문서 1267개 | 59.8% SQL CPU 사용률 | 0.057 | 초당 처리된 문서 686개 | 68.5% SQL CPU 사용률 | 0.067 |
3 MessageBox 1 BizTalk Server 컴퓨터 | 초당 처리된 문서 2102개 | 41% SQL CPU 사용률 | 0.077 | 초당 처리된 문서 974개 | 48% SQL CPU 사용률 | 0.11 |
3 MessageBox 2 BizTalk Server 컴퓨터 | 초당 처리된 문서 2285개 | 58% SQL CPU 사용률 | 0.041 | 초당 처리된 문서 1065개 | 65% SQL CPU 사용률 | 0..69 |
4 MessageBoxes 1 BizTalk Server 컴퓨터 | 초당 처리된 문서 2125개 | 30% SQL CPU 사용률 | 0.078 | 초당 처리된 문서 979개 | 37% SQL CPU 사용률 | 0.095 |
4 MessageBoxes 2 BizTalk Server 컴퓨터 | 초당 처리된 문서 2790개 | 50% SQL CPU 사용률 | 0.052 | 초당 처리된 문서 1487개 | 63% SQL CPU 사용률 | 0.15 |
4 MessageBoxes 3 BizTalk Server 컴퓨터 | 초당 처리된 문서 2656개 | 58% SQL CPU 사용률 | 0.074 | 초당 처리된 문서 1388개 | 65% SQL CPU 사용률 | 0.15 |
2009년 BizTalk Server 성능 통계 비교
다음 표에서는 BizTalk Server 2009년과 2010년 BizTalk Server 간의 성능 통계 비교를 보여 줍니다. 이 표에 나열된 BizTalk Server 2009 성능 통계는 BizTalk Server 2009 성능 및 최적화 가이드에 나와 있습니다.
시나리오 | BizTalk Server 2009 MST(지속 가능한 최대 처리량) msgs/sec |
BizTalk Server 2009 필요한 BizTalk 서버 수 |
BizTalk Server 2010 MST(지속 가능한 최대 처리량) msgs/sec |
BizTalk Server 2010 필요한 BizTalk 서버 수 |
BizTalk Server 2009년 BizTalk Server 2010% 차이 |
---|---|---|---|---|---|
메시징 - 단일 MessageBox | 1291 | 2 | 1266 | 1 | 98.06% |
오케스트레이션 - 단일 MessageBox | 676 | 2 | 680 | 1 | 100.59% |
메시징 - 3개의 MessageBoxes | 2103 | 3 | 2285 | 2(BTS 1개 포함 2102/초) | 108.65% |
메시징 - 4개의 MessageBoxes | 해당 없음 | 해당 없음 | 2790 | 2 | 해당 없음 |
오케스트레이션 - 3개의 MessageBoxes | 1005 | 4 | 1065 | 2(BTS 1개 포함 974/초) | 105.97% |
오케스트레이션 - 4개의 MessageBoxes | 해당 없음 | 해당 없음 | 1487 | 2 | 해당 없음 |
랩 환경에서 4개의 MessageBox 데이터베이스를 사용하는 경우 지속 가능한 최대 처리량 결과는 다음과 같습니다.
메시징 시나리오의 경우 초당 2790개 문서입니다.
오케스트레이션 시나리오의 경우 초당 1487개 문서입니다.
메시지 고려 사항 BizTalk Server 메시지 크기에 제한이 없지만 BizTalk Server 2010년 동안 실행한 테스트는 2KB 메시지만 사용했으며 사용된 WCF 어댑터 유형은 WCF-NetTCP 어댑터였습니다. 이는 BizTalk Server 2009 성능 최적화 가이드 테스트에 사용된 메시지 크기 및 어댑터 유형과 일치합니다.
성능 향상을 위한 동인은 다음과 같습니다.
하드웨어 발전 - 랩에서 사용되는 SQL Server 컴퓨터는 4-CPU, 쿼드 코어(16개 코어), Intel Xeon E7330 @ 2.40GHz였습니다. 2009년 테스트에서는 4-CPU, 쿼드 코어(16코어), Intel Xeon 2.4GHz가 사용되었습니다.
랩에서 사용되는 BizTalk Server 컴퓨터는 2-CPU, 쿼드 코어(8코어), Nehalem Hyper-Threaded(16개의 논리 코어), Intel Xeon X5570 @ 2.93GHz였습니다. 2009년 테스트에서 2-CPU, 쿼드 코어(8코어), Intel Xeon 2.33GHz가 사용되었습니다.
SQL Server 엔진 개선 - 2009년 테스트는 2008년 SQL Server 대해 수행된 반면, 테스트는 SQL Server 2008 R2를 기본 데이터베이스 플랫폼으로 사용하여 수행되었습니다.
BizTalk Server 및 SQL Server 계층 크기 조정을 위한 권장 사항
이러한 결과를 통해 BizTalk Server 제품 팀은 단일 BizTalk Server 컴퓨터와 단일 SQL Server 컴퓨터가 메시징 시나리오에서 1억 9천만 개 이상의 메시지와 24시간 동안 5,800만 개의 오케스트레이션을 지원할 수 있음을 입증할 수 있었습니다. BizTalk Server 및 SQL 계층을 환경에서 사용할 수 있는 최적의 구성으로 확장함으로써 하루에 2억 4,100만 개 이상의 메시지와 1억 2,800만 개 이상의 오케스트레이션을 처리할 수 있었습니다. 결과는 많은 기업에 배포된 하드웨어 클래스를 사용하여 샌드박스 환경에서 수행되었습니다. 앞에서 설명한 것처럼 이러한 숫자는 사용자 지정 코드 및 최적화된 환경 없이 달성할 수 있는 BizTalk Server 실제 성능을 나타냅니다. 추가 하드웨어를 사용하면 더 큰 성능을 달성할 수 있습니다. 고객 솔루션에는 추가 처리 요구 사항이 발생하는 사용자 지정 개발 BizTalk 아티팩트가 포함되므로 리소스 사용률이 증가하고 전반적인 성능이 저하되는 경우가 많습니다. 그러나 가이드 전체에서 설명한 조언, 특히 BizTalk Server 애플리케이션 최적화의 권장 사항에 따라 이러한 영향을 최소화할 수 있습니다.
결과는 MessageBox SQL Server 컴퓨터가 병목 상태가 아닌 경우 BizTalk Server 컴퓨터 수를 스케일 아웃하는 것이 효과적인 스케일 아웃 전략임을 보여 줍니다. 특정 시점이 지나면 MessageBox 데이터베이스 내의 공유 테이블에서 경합 지점이 발생하여 성능이 저하되는 것을 관찰했기 때문에 BizTalk Server 컴퓨터를 추가하는 것이 비효율적인 스케일 아웃 기술이 된다는 것을 알 수 있습니다. 단일 MessageBox 데이터베이스를 사용하여 BizTalk Server 그룹에서 얻을 수 있는 결과를 최대화하려면 데이터베이스 성능 최적화에 설명된 최적화를 적용해야 합니다. 특히 빠른 스토리지 하위 시스템이 SQL Server 스토리지에 사용되고 SQL Server MessageBox 데이터베이스 파일을 저장하는 데 사용하는 논리 디스크가 가능한 가장 짧은 시간에 응답하는지 확인해야 합니다. 허용 가능한 읽기/쓰기 성능을 측정하기 위해 일반적으로 사용되는 임계값은 15밀리초입니다. 일반적으로 논리 디스크 성능 개체에서 찾을 수 있는 Avg. Disk sec/Read 및 Avg. Disk sec/Write 카운터로 측정됩니다. MessageBox 데이터베이스를 호스트하는 SQL Server 컴퓨터에 사용 가능한 모든 최적화가 적용되면 추가 MessageBox 데이터베이스를 추가할 수 있습니다. 주 MessageBox 데이터베이스에 적용된 것과 동일한 최적화 기술도 보조 데이터베이스에 적용해야 합니다. BizTalk Server 설명서의 SQL Server 계층 확장(https://go.microsoft.com/fwlink/?LinkID=158075)의 지침을 따르는 것이 좋습니다.
최적의 결과를 얻으려면 전체 하드웨어 및 소프트웨어 스택의 품질이 적절하고 올바르게 구성되어야 합니다. 먼저 기가비트 네트워킹, 빠른 스토리지(SAN 또는 15K 로컬 SQL 디스크) 및 CPU당 코어가 여러 개 있는 최신 컴퓨터를 포함하여 좋은 품질의 하드웨어를 구매해야 합니다. SQL Server 컴퓨터는 BizTalk Server 처리 전용이어야 합니다. 단일 SQL Server 컴퓨터를 실행하는 경우 BizTalk MessageBox용 인스턴스와 다른 모든 데이터베이스에 대해 하나씩 두 개의 SQL 인스턴스를 만드는 것이 좋습니다. 이렇게 하면 Instance 전체 설정을 구성하여 MessageBox의 성능을 최적화할 수 있습니다. 성능 최적화에서 권장되는 최적화는 운영 체제 성능 최적화, 네트워크 성능 최적화, 사전 구성 데이터베이스 최적화2, 구성 후 데이터베이스 최적화2 및 일반 BizTalk Server 최적화1 순서로 단계별로 적용해야 합니다. MessageBox 데이터베이스에 대한 전용 파일 그룹을 만들고 데이터베이스 2용 파일 그룹 최적화에 설명된 대로 SAN LUN 간에 할당하면 SAN 구성 및 LUN 레이아웃에 따라 성능이 상당히 향상될 수 있습니다.
BizTalk Server 또는 SQL 계층을 스케일링하는 방법을 효과적으로 확인하려면 실제 프로덕션 데이터와 근사한 메시지를 사용하여 부하 테스트를 수행하는 것이 좋습니다. BizTalk Server 계층을 크기 조정하기 전에 모니터링 SQL Server 성능에 권장되는 대로 SQL Server 아직 병목 상태가 아닌지 확인합니다. SQL Server 병목 상태가 아니고 BizTalk Server 컴퓨터에 CPU 헤드룸이 있는 경우 호스트 instance 레이아웃을 수정하여 처리량을 향상시킬 수 있습니다. 모든 테스트 실행에 대해 상위 수준 비교 지점으로 사용되는 4~5개의 KPI(핵심 성과 지표)를 설정하는 것이 중요합니다. 이 조언에 따라 특정 변경으로 솔루션의 전반적인 성능이 저하되었는지 여부를 신속하게 측정할 수 있습니다.
SQL Server 계층을 확장하기 전에 데이터베이스 성능 최적화에서 모든 최적화를 적용합니다. 고객 성능 랩 과정에서 특히 MessageBox 및 TempDb 데이터베이스에 대한 디스크 스토리지 구성이 30% 이상의 처리량 향상을 제공할 수 있다는 것이 관찰되었습니다. 여러 MessageBox 데이터베이스로 스케일링할 때 단일 MessageBox 데이터베이스에서 두 개의 MessageBox 데이터베이스로 스케일 아웃할 때 성능 이점이 거의 없기 때문에 3개와 4개의 MessageBox 데이터베이스가 사용되었습니다. BizTalk Server MessageBox를 확장하는 방법에 대한 자세한 내용은 BizTalk Server 설명서의 SQL Server 계층 확장(https://go.microsoft.com/fwlink/?LinkID=158075)을 참조하세요.
구현된 최적화
이 섹션에서는 랩 테스트 시나리오에 적용된 모든 최적화의 검사 목록을 제공합니다.
참고
이러한 테스트는 프로덕션 환경 내에서 적용하기 전에 변경 관리 절차에 따라 테스트해야 합니다.
최적화 집합을 적용한 다음 영향을 테스트하여 체계적이고 제어된 방식으로 최적화를 적용하면 최대 성능 이점이 있습니다. 최적화의 영향을 주기적으로 테스트하지 않고 최적화를 적용하면 실제로 솔루션의 성능이 저하될 수 있습니다.
적용된 최적화 검사 목록
플랫폼 및 네트워크 최적화
Optimization | 참조 |
---|---|
BIOS: 성능에 대한 설정을 구성합니다. | 운영 체제 성능 최적화 |
SQL Server 파일에서 실시간 검사를 사용하지 않도록 설정합니다. | 운영 체제 성능 최적화 |
모든 BizTalk Server 및 SQL Server 컴퓨터에서 "고성능" 전원 계획을 사용하도록 설정합니다. | 운영 체제 성능 향상을 위한 일반 지침 |
모든 BizTalk Server 및 SQL Server 컴퓨터에서 바이러스 백신을 사용하지 않도록 설정합니다. | 운영 체제 성능 향상을 위한 일반 지침 |
SQL Server 최적화: 일반
Optimization | 참조 |
---|---|
NTFS 파일 할당 단위를 64KB로 설정합니다. | 사전 구성 데이터베이스 최적화2 |
SQL Server 2008 R2를 설치합니다. | 사전 구성 데이터베이스 최적화2 |
SQL Server 2008 R2 데이터 수집기/웨어하우스를 구성합니다. | 사전 구성 데이터베이스 최적화2 |
적절한 Windows 권한이 SQL Server 서비스 계정으로 확장되었는지 확인합니다. | SQL Server 2008 R2: Windows 서비스 계정 설정(https://go.microsoft.com/fwlink/?LinkID=132144) |
SQL Server 최소 및 최대 서버 메모리를 설정합니다. | 사전 구성 데이터베이스 최적화2 |
SQL Server 사용되는 계정에 Windows Lock Pages In Memory 권한을 부여합니다. | 사전 구성 데이터베이스 최적화2 |
데이터베이스 크기를 여러 데이터 파일과 함께 적절한 크기로 BizTalk Server. | 구성 후 데이터베이스 최적화2 |
SQL Server 클라이언트 프로토콜을 구성합니다. | 문제 해결 SQL Server(https://go.microsoft.com/fwlink/?LinkID=154250) |
tempdb 데이터베이스를 BizTalk Server 사용하는 각 SQL Server instance 크기가 같은 여러 데이터 파일로 분할합니다. | 사전 구성 데이터베이스 최적화2 |
수동으로 SQL Server 프로세스 선호도 설정 | 사전 구성 데이터베이스 최적화2 |
MSDTC 구성 및 DTC 추적 사용 안 함 | 사전 구성 데이터베이스 최적화2 |
추적 플래그 T1118을 모든 인스턴스의 시작 매개 변수로 사용하도록 SQL Server | 사전 구성 데이터베이스 최적화2 |
SQL Server 최적화: BizTalk 데이터베이스
Optimization | 참조 |
---|---|
BizTalk 데이터베이스의 자동 증가를 백분율 값이 아닌 고정 값으로 설정합니다. | 구성 후 데이터베이스 최적화2 |
BizTalk 데이터베이스 데이터 및 로그 파일을 개별 LUNS로 이동/분할합니다. | 구성 후 데이터베이스 최적화2 |
특정 MessageBox 데이터베이스 테이블에서 '행에 있는 텍스트' 테이블 옵션을 설정하는 것이 좋습니다. | 구성 후 데이터베이스 최적화2 |
BizTalk 최적화
Optimization | 참조 |
---|---|
별도의 전용 호스트에서 수신 포트, 송신 포트, 오케스트레이션 및 추적을 분리합니다. | 일반 BizTalk Server 최적화1 |
폴링 간격을 구성합니다. | 짧은 대기 시간 시나리오 최적화2 |
BizTalk 구성 파일 최대 연결 속성을 조정합니다. | 일반 BizTalk Server Optimizations1의 "maxconnection 매개 변수 값을 변경하여 허용되는 SOAP 및 HTTP 동시 연결 수 늘리기" 섹션 |
각 BizTalk Server 노드에서 각 호스트 instance 대한 CLR 호스팅 매개 변수를 정의합니다. 최대 IO 스레드: 250 최대 작업자 스레드 수: 100 최소 IO 스레드: 25 최소 작업자 스레드: 25 |
일반 BizTalk Server 최적화1의 "BizTalk 호스트 인스턴스에 대한 CLR 호스팅 스레드 값 정의" 섹션 |
In-process 메시지 및 내부 메시지 큐 크기를 10000으로 늘입니다. | 짧은 대기 시간 시나리오 최적화2 |
BizTalk Server 그룹 수준 추적을 사용하지 않도록 설정합니다. | 일반 BizTalk Server 최적화1 |
통합 모드에서 실행되는 IIS 7.5 및 IIS 7.0에서 격리된 수신된 위치, 백 엔드 웹 서비스 및 WCF 서비스를 호스트할 수 있는 ASP.NET 4개 웹 애플리케이션에 대해 동시에 실행되는 요청 수를 관리합니다. | 일반 BizTalk Server 최적화1 |
BizTalk Server 호스트 제한 사용 안 함 | 일반 BizTalk Server 최적화1 |
MSDTC 구성 및 DTC 추적 사용 안 함 | 일반 BizTalk Server 최적화1 |
WCF 구성 최적화
Optimization | 참조 |
---|---|
각 WCF 서비스에 대해 serviceThrottling 서비스 동작을 적용하고 maxConcurrentCalls 및 maxConcurrentSessions 를 200으로 설정합니다. | BizTalk Server WCF 어댑터 성능 최적화 |
백 엔드 WCF 서비스 구성 파일에서 serviceThrottling 동작의 사용을 구성합니다. | WCF 웹 서비스 성능 최적화 |