테스트 시나리오 개요
이 항목에서는 테스트 애플리케이션에 대한 개요를 제공합니다. 사용된 테스트 방법론에 대한 설명과 부하 테스트 중에 캡처된 KPI(핵심 성능 지표)를 나열합니다.
애플리케이션 테스트
동기 요청-응답 애플리케이션은 Hyper-V에서 실행되는 BizTalk Server 성능을 실제 하드웨어에서 실행되는 BizTalk Server 비교하는 데 사용되었습니다. 이 애플리케이션은 짧은 대기 시간에 맞게 조정된 BizTalk Server 솔루션의 성능을 보여 주는 데 사용되었습니다. 짧은 대기 시간 메시징은 클라이언트가 요청을 보내고 매우 짧은 간격(예 < : 3초) 내에 응답 메시지를 예상하는 온라인 뱅킹과 같은 특정 시나리오에 매우 중요합니다.
아래 그림에서는 사용되는 상위 수준 아키텍처를 보여 줍니다. VSTS(Visual Studio Team System) 2008 테스트 부하 에이전트는 WCF 전송을 사용하여 BizTalk Server 대한 부하를 생성하는 사용자 지정 테스트 클래스를 호출했습니다. 이 시나리오의 BizTalk Server 애플리케이션은 WCF-BasicHttp 요청-응답 수신 위치를 통해 노출되었습니다. VSTS 2008 테스트 부하 에이전트는 총 전송된 메시지 수, 동시 스레드 수 및 전송된 요청 간의 절전 모드 간격을 구성하는 기능을 포함하여 제공하는 뛰어난 유연성 때문에 테스트 클라이언트로 사용되었습니다.
여러 VSTS 2008 테스트 부하 에이전트 컴퓨터를 함께 실행하여 실제 부하 패턴을 시뮬레이션할 수 있습니다. 이러한 테스트의 경우 VSTS 2008 테스트 부하 에이전트 컴퓨터는 BizUnit 3.0을 실행하는 단일 VSTS 2008 테스트 부하 에이전트 컨트롤러 컴퓨터에 의해 구동되었습니다. 결과적으로 물리적 및 가상 BizTalk Server 컴퓨터 모두에 일관된 부하가 전송되었습니다. VSTS 2008 Test Edition을 사용하여 테스트를 위해 시뮬레이션된 부하를 생성하는 방법에 대한 자세한 내용은 을 참조하세요 https://go.microsoft.com/fwlink/?LinkID=132311.
애플리케이션 아키텍처 테스트
WCF-BasicHttp 또는 WCF-Custom Request-Response 수신 위치는 테스트 부하 에이전트 컴퓨터에서 새 CalculatorRequest를 받습니다.
XML 디스어셈블러 구성 요소는 CalculatorRequest xml 문서 내에서 Method 요소를 승격합니다. 메시지 에이전트는 들어오는 메시지를 MessageBox 데이터베이스(BizTalkMsgBoxDb)에 제출합니다.
인바운드 요청은 LogicalPortsOrchestration의 새 instance 시작합니다. 이 오케스트레이션은 직접 바인딩된 포트를 사용하여 메서드 승격 속성 = "LogicalPortsOrchestration"을 사용하여 CalculatorRequest 메시지를 받습니다.
LogicalPortsOrchestration은 루프를 사용하여 작업을 검색하고 각 항목에 대해 논리 Solicit-Response 포트를 사용하여 다운스트림 계산기 WCF 웹 서비스를 호출합니다. 계산기 WCF 웹 서비스에 대한 요청 메시지는 도우미 구성 요소를 사용하여 만들어지고 MessageBox에 게시됩니다.
요청 메시지는 WCF-BasicHttp 송신 포트에서 사용됩니다.
WCF-BasicHttp 송신 포트는 계산기 WCF 웹 서비스에서 노출하는 메서드(추가, 빼기, 곱하기, 나누기) 중 하나를 호출합니다.
계산기 WCF 웹 서비스는 응답 메시지를 반환합니다.
응답 메시지가 MessageBox에 게시됩니다.
응답 메시지는 호출자 LogicalPortsOrchestration에 반환됩니다. 오케스트레이션은 인바운드 CalculatorRequest xml 문서 내의 각 작업에 대해 이 패턴을 반복합니다.
LogicalPortsOrchestration은 CalculatorResponse 메시지를 MessageBox에 게시합니다.
응답 메시지는 Request-Response WCF-BasicHttp 수신 위치에서 검색됩니다.
응답 메시지가 부하 테스트 에이전트 컴퓨터에 반환됩니다.
부하 테스트 중에 사용되는 오케스트레이션의 스크린샷은 다음과 같습니다.
참고
아래에 설명된 오케스트레이션은 부하 테스트 중에 실제로 사용된 간소화된 오케스트레이션 버전입니다. 부하 테스트 중에 사용되는 오케스트레이션에는 여러 범위, 오류 처리 논리 및 추가 포트 유형이 포함되었습니다.
테스트 애플리케이션 오케스트레이션 테스트
테스트 방법론
성능 테스트에는 많은 작업이 포함되며, 수동으로 수행되는 경우 반복적이고 단조롭고 오류가 발생하기 쉽습니다. 테스트 효율성을 개선하고 테스트 실행 간에 일관성을 제공하기 위해 BizUnit 3.0을 사용하여 VSTS(Team System) 테스트 에디션을 Visual Studio 2013 테스트 프로세스 중에 필요한 작업을 자동화하는 데 사용되었습니다. VSTS 2008 테스트 부하 에이전트 컴퓨터는 시스템에 대한 메시지 부하를 생성하기 위해 테스트 클라이언트로 사용되었으며 일관성을 개선하기 위해 각 테스트 실행에서 동일한 메시지 유형이 사용되었습니다. 이 프로세스에 따라 모든 테스트 실행에 대해 일관된 데이터 집합을 제공합니다. BizUnit 3.0에 대한 자세한 내용은 을 참조하세요 https://go.microsoft.com/fwlink/?LinkID=85168. Visual Studio 2013 Team System Test Edition에 대한 자세한 내용은 을 참조하세요https://go.microsoft.com/fwlink/?LinkID=141387.
다음 단계가 자동화되었습니다.
BizTalk 호스트를 중지합니다.
테스트 디렉터리를 정리합니다.
IIS를 다시 시작합니다.
BizTalk Server Messagebox 데이터베이스를 정리합니다.
SQL Server를 다시 시작하십시오.
이벤트 로그를 지웁니다.
연결된 성능 메트릭 및 로그 파일을 저장할 각 실행에 대한 테스트 결과 폴더를 만듭니다.
BizTalk 호스트를 시작합니다.
성능 모니터 카운터를 로드합니다.
작은 부하로 BizTalk 환경을 준비합니다.
대표 실행을 통해 보냅니다.
결과 폴더에 성능 로그를 씁니다.
애플리케이션 로그를 수집하고 결과 폴더의 .csv 파일에 씁니다.
수집된 성능 로그에 대해 PAL(로그 성능 분석) 도구인 Relog 및 Log Parser 도구를 실행하여 통계, 차트 및 보고서를 생성합니다. PAL, Relog 및 Log Parser에 대한 자세한 내용은 부록 D: 성능 측정 도구를 참조하세요.
참고
모든 추적이 사용하지 않도록 설정되었고 테스트 중에 BizTalk Server SQL Server 에이전트 작업이 비활성화되었습니다.
이 랩의 결과가 물리적 및 Hyper-V 환경에서 BizTalk Server 성능을 비교할 수 있도록 하기 위해 성능 메트릭과 로그는 각 테스트 실행에 대한 중앙 집중식 위치에서 수집되었습니다.
테스트 클라이언트는 각 테스트 실행에 대한 고유한 결과 디렉터리를 만드는 데 사용되었습니다. 이 디렉터리에는 테스트에 필요한 모든 성능 로그, 이벤트 로그 및 관련 데이터가 포함되어 있습니다. 이 방법은 이전 테스트 실행에 대한 소급 분석이 필요할 때 필요한 정보를 제공했습니다. 각 테스트가 끝날 때 원시 데이터는 일관된 결과 및 KPI(핵심 성과 지표) 집합으로 컴파일되었습니다. 물리적 및 가상화된 머신에 대해 일관된 결과 집합을 수집하면 서로 다른 테스트 실행과 다른 환경 간에 필요한 비교 지점이 제공되었습니다. 수집된 데이터는 다음과 같습니다.
환경– 테스트가 실행되고 있는 환경을 기록하려면 물리적 하드웨어에서 BizTalk Server Hyper-V에서 BizTalk Server.
테스트 실행 번호 – 각 테스트 실행을 고유하게 식별하려면
테스트 사례 – 테스트 중에 사용되는 BizTalk Server 솔루션의 아키텍처를 기록합니다. (예: 논리 포트를 사용한 오케스트레이션 및 인라인 보내기를 사용하는 오케스트레이션)
날짜– 테스트가 실행된 날짜 및 시간을 기록하려면
시작 시간 – 첫 번째 VSTS 부하 테스트 에이전트가 시작한 것으로 보고됨
중지된 시간 – 완료할 마지막 VSTS 부하 테스트 에이전트에서 보고한 대로
테스트 기간(분) – 테스트 기간을 기록합니다.
총 전송된 메시지 수 – 테스트 중에 Load Agent 컴퓨터에서 BizTalk Server 컴퓨터로 전송된 총 메시지 수를 기록합니다.
초당 보낸 메시지 – 테스트 중에 Load Agent 컴퓨터에서 BizTalk Server 컴퓨터로 초당 전송된 메시지를 기록합니다.
평균 클라이언트 대기 시간 – 테스트 부하 에이전트 클라이언트가 부하 테스트 중에 BizTalk Server 컴퓨터로부터 요청을 시작하고 응답을 받은 시점 사이의 평균 시간을 기록합니다.
요청-응답 기간 평균(밀리초) – BizTalkServerIsolatedHost에 대한 BizTalk:Messaging Latency\Request-Response Latency(초) 성능 모니터 카운터에서 보고한 대로
참고
여러 가상화된 BizTalk 호스트가 로그에서 계산된 대로 이러한 카운터의 평균을 실행하는 위치가 사용되었습니다.
초당 완료된 오케스트레이션 –XLANG/s Orchestrations(BizTalkServerApplication)\Orchestrations completed/sec 성능 모니터 카운터에서 보고한 대로. 이 카운터는 BizTalk Server 솔루션의 처리량을 잘 측정합니다.
%of Messages Processed < 3초 – 테스트 중 3초 이내에 처리된 총 메시지 수를 기록합니다.
VSTS 2008 부하 테스트는 모든 테스트 전체에서 일관된 부하를 생성하는 데 사용되었습니다. 다음 테스트 실행 설정 및 부하 패턴은 테스트 중에 수정되어 각 테스트의 부하 프로필을 조정했습니다.
테스트 실행 설정
수행 중인 테스트에 따라 다음 테스트 실행 설정이 수정되었습니다.
실행 기간 – 테스트 실행 기간을 지정합니다.
테스트 실행 설정
테스트 패턴 설정
다음 테스트 패턴 설정은 수행 중인 테스트에 따라 수정되었습니다.
패턴– 부하 테스트 중에 시뮬레이션된 사용자 부하를 조정하는 방법을 지정합니다. 부하 패턴은 상수, 단계 또는 목표 기반입니다. 수행된 모든 부하 테스트는 상수 또는 단계였습니다.
참고
이 가이드의 목적을 위해 수행된 모든 테스트는 상수 부하 패턴 또는 단계 부하 패턴을 사용했습니다. 상수 부하 패턴 및 단계 부하 패턴은 다음 기능을 제공합니다.
- 상수 부하 패턴 – 부하 패턴은 테스트 기간 동안 동일하며 시뮬레이션된 사용자 수는 미리 정의된 수준에서 시작되며 변경되지 않습니다.
- 단계 부하 패턴 – 부하 패턴은 테스트 실행 중에 증가합니다. 시뮬레이션된 사용자 수는 미리 정의된 수준에서 시작되며 테스트 기간 동안 미리 정의된 간격으로 미리 정의된 양만큼 증가합니다.
- 상수 부하 패턴 – 부하 패턴은 테스트 기간 동안 동일하며 시뮬레이션된 사용자 수는 미리 정의된 수준에서 시작되며 변경되지 않습니다.
상수 사용자 수(상수 부하 패턴) – Visual Studio 부하 테스트 프로젝트의 app.config 파일에 지정된 엔드포인트 주소에 대해 부하를 생성하는 가상 사용자의 수입니다. 이 값은 부하 테스트에 사용되는 부하 패턴 설정에 지정됩니다.
초기 사용자 수(단계 부하 패턴) – 단계 부하 패턴 테스트 시작 시 지정된 엔드포인트 주소에 대해 부하를 생성하는 가상 사용자의 수입니다. 이 값은 부하 테스트에 사용되는 부하 패턴 설정에 지정됩니다.
최대 사용자 수(단계 부하 패턴) – 단계 부하 패턴 테스트가 끝날 때 지정된 엔드포인트 주소에 대해 부하를 생성하는 가상 사용자 수입니다. 이 값은 부하 테스트에 사용되는 부하 패턴 설정에 지정됩니다.
단계 기간(단계 부하 패턴) – 가상 사용자가 부하 테스트 단계에 대해 지정된 엔드포인트 주소에 대해 부하를 생성하는 시간(초)입니다.
단계 사용자 수(단계 부하 패턴) – 단계 부하 패턴을 사용할 때 각 단계에서 증가할 가상 사용자 수입니다.
테스트 패턴 설정
Visual Studio 2013 부하 테스트 작업에 대한 자세한 내용은 의 Visual Studio 2013 Team System 설명서에서 부하 테스트 작업 항목을 참조하세요https://go.microsoft.com/fwlink/?LinkId=141486.
테스트 중에 측정된 주요 성능 지표
다음 성능 모니터 카운터는 모든 테스트 실행에 대한 KPI(핵심 성능 지표)로 캡처되었습니다.
참고
성능 모니터 카운터를 사용하여 성능을 평가하는 방법에 대한 자세한 내용은 검사 목록: Hyper-V에서 성능 측정을 참조하세요.
BizTalk Server KPI
초당 처리되는 문서 -BizTalk:Messaging/Documents processed/Sec 카운터로 측정됩니다 .
대기 시간이– VSTS 2008 Load Test Controller 반환된 것으로 측정됩니다.
KPI SQL Server
SQL Server 프로세서 사용률 –SQL\Processor(Total)\%Processor Time 카운터로 측정됩니다. 이 카운터는 SQL Server 컴퓨터에서 SQL Server 처리의 CPU 사용률을 측정합니다.
Transact SQL 명령 처리 성능 –\SQL Server:SQL Statistics\Batch Requests/sec 카운터로 측정됩니다. 이 카운터는 초당 수신된 Transact-SQL 명령 일괄 처리 수를 측정합니다. 이 카운터는 SQL Server 컴퓨터에서 처리량을 측정하는 데 사용됩니다.
네트워킹 KPI
네트워크 처리량 BizTalk Server – BizTalk Server 컴퓨터의 \Network Interface(*)\Bytes Total/sec 성능 모니터 카운터로 측정됩니다.
SQL Server 네트워크 처리량 – VSTS 2008 Load Test Controller 반환된 SQL Network Interface\Bytes Total/sec(평균)로 측정됩니다.
메모리 KPI
사용 가능한 메모리 – 다양한 시나리오에 대해 \Memory\Available Mbytes 카운터로 측정됩니다.
물리적 인프라 관련 사항
설치된 각 서버에 대해 다음 설정이 조정되었습니다.
모든 서버의 경우:
페이징 파일은 할당된 실제 메모리의 1.5배로 설정되었습니다. 페이징 파일은 초기 크기 및 최대 값이 MB에서 동일한지 확인하여 고정 크기로 설정되었습니다.
고급 시스템 속성 화면에서 "최상의 성능을 위해 조정" 성능 옵션이 선택되었습니다.
시스템 속성의 성능 옵션 섹션에서 백그라운드 서비스의 최상의 성능을 위해 시스템이 조정된 것으로 확인되었습니다.
Windows Server 2008 SP2는 각 가상 머신에 게스트 운영 체제로 설치되었습니다.
Windows 업데이트 모든 서버에서 실행하여 최신 보안 업데이트를 설치했습니다.
SQL Server의 경우.
SQL Server 에서 사용할 수 있는 https://go.microsoft.com/fwlink/?LinkId=141021설치 가이드에 따라 설치되었습니다.
사용된 SQL Server 아래 표에 따라 SAN LUN을 구성했습니다. 데이터베이스 및 로그 파일은 가능한 디스크 I/O 경합을 줄이기 위해 다음과 같이 LUN 간에 구분되었습니다.
Data_Sys 볼륨은 MessageBox 및 TempDb 데이터베이스를 제외한 모든 데이터베이스 파일(시스템 및 BizTalk 데이터베이스 포함)을 저장하는 데 사용되었습니다.
Log_Sys 볼륨은 MessageBox 및 TempDb 데이터베이스를 제외한 모든 로그 파일(시스템 및 BizTalk Server 데이터베이스 포함)을 저장하는 데 사용되었습니다.
Data_TempDb 볼륨은 TempDb 데이터베이스 파일을 저장하는 데 사용되었습니다.
Logs_TempDb 볼륨은 TempDb 로그 파일을 저장하는 데 사용되었습니다.
MessageBox 데이터베이스 파일은 Data_BtsMsgBox 볼륨에 저장되었고 로그 파일은 Log_BtsMsgBox 볼륨에 저장되었습니다.
이 외에도 MSDTC 로그 파일에 대해 별도의 LUN이 제공되었습니다. 높은 처리량 BizTalk 시스템에서 MSDTC 로그 파일 작업은 운영 체제와 동일한 물리적 드라이브에 남아 있는 경우 I/O 병목 상태를 유발하는 것으로 나타났습니다.
볼륨 이름 파일 LUN 크기 GB 호스트 파티션 크기 GB 클러스터 크기 Data_Sys MASTER 및 MSDB 데이터 파일 10 10 64KB Logs_Sys MASTER 및 MSDB 로그 파일 10 10 64KB Data_TempDb TempDB 데이터 파일 50 50 64KB Logs_TempDb TempDB 로그 파일 50 50 64KB Data_BtsMsgBox BizTalkMsgBoxDb 데이터 파일 300 100 64KB Logs_BtsMsgBox BizTalkMsgBoxDb 로그 파일 100 100 64KB Data_BAMPrimaryImport BAMPrimaryImport 데이터 파일 10 10 64KB Logs_BAMPrimaryImport BAMPrimaryImport 로그 파일 10 10 64KB Data_BizTalkDatabases 기타 BizTalk 데이터베이스 데이터 파일 20 20 64KB Logs_BizTalkDatabases 기타 BizTalk 데이터베이스 로그 파일 20 20 64KB 해당 없음 MSDTC 로그 파일 5 5 해당 없음 BizTalk Server 에서 https://go.microsoft.com/fwlink/?LinkId=128383사용할 수 있는 설치 가이드에 따라 설치되었습니다.
BizTalk Server BPA(모범 사례 분석기) 도구는 시스템이 구성되면 플랫폼 유효성 검사를 수행하는 데 사용되었습니다. BizTalk Server(https://www.microsoft.com/download/details.aspx?id=43382)입니다.
가상화 세부 정보
단일 50GB 고정 VHD는 각 Hyper-V 가상 머신에 대한 운영 체제를 호스트하는 데 사용되었습니다.
VHD가 호스트되는 드라이브의 파일에 VHD의 최대 스토리지를 즉시 할당하기 때문에 VHD가 동적으로 크기가 조정되는 대신 VHD가 사용되었습니다. 이렇게 하면 호스팅되는 실제 드라이브에서 발생하는 VHD 파일의 조각화가 감소하여 디스크 I/O 성능이 향상됩니다.
가상 머신을 설정하기 위해 단일 VHD에서 Windows Server 2008 SP2 64비트 버전을 설치했습니다. 모든 적절한 업데이트가 설치되면 기본 가상 머신은 Windows Server 2008 SP2와 함께 설치된 sysprep 유틸리티를 사용하여 %WINDIR%\system32\sysprep 디렉터리에 이미지화되었습니다.
그런 다음 이 기본 VHD를 복사하여 환경 전체에 배포된 모든 Hyper-V 가상 머신의 기초로 사용했습니다. Sysprep은 SQL Server 또는 BizTalk Server 이진 파일이 시스템에 배포되기 전에 시스템 보안 식별자를 다시 설정하기 위해 기본 VHD 이미지에서 실행되었습니다.
참고
서버에 BizTalk Server 설치되고 구성된 후 Sysprep을 실행하는 작업은 Sysprep 응답 파일 및 BizTalk Server 함께 제공되는 스크립트를 사용하여 수행할 수 있습니다. 이러한 샘플 스크립트는 32비트 및 64비트 버전의 Windows Server 2008 SP2에만 설치된 BizTalk Server 사용하도록 설계되었습니다. 자세한 내용은 BizTalk Server 온라인 설명서를 참조하세요.
무인 Windows 설치 프로그램 참조는 에서 https://go.microsoft.com/fwlink/?LinkId=142364사용할 수 있습니다.