여러 가지 상호 의존적 인 서비스를 성능 /로드 테스트해야합니다. 그들은 모두 net.tcp를 사용하며 대부분 이중 통신 계약과 내부 대기열을 사용합니다. [lock (syncRoot) {if (queue.Empty) Thread.Wait();을 사용하여 POCO 대기열 클래스를 핸들링 함. } 여기서 WCF 서비스 용 SLA 정의
내가 가지고 올 한 접근 방식 :- 성능이
- 논리 시작점을 식별 서비스 각각에 대해 relavant 성능 카운터를 확인
- 을 테스트 할 WCF 서비스를 식별하는 테스트중인 서비스를 통해 실행을 수행합니다.
- 각 서비스에 대해 VS.Net을 사용하여 자동 생성 단위 테스트
- 특정 기능 테스트 작성 예, "주문하기"- 관련 서비스에 대한 모든 호출을 수행하고 일반적으로 필요한 모든 기능을 수행하는 테스트 작성 가능
- # 5를 실행하는 추적 파일을 사용하여 생성 Unit Tests [CodePlex에서 WCF Load Test 사용] (어떻게 든 디버그 환경에서 프로덕션/필드의 사용자 오류를 재현하는 이상적인 도구 인 것 같습니다. 면책 조항 : 도구를 사용하지 않았습니다. 프로젝트 내림차순) 읽기에서 노출
- 테스트 위의 자동
- 는
- 분석 성능 카운터에서
- 로그 데이터를 excercised하는 입력 그래서 다른 코드 경로에 변화를 소개 입력 데이터를 생성로 통화를 할 수 불통 될 수있다
- 더 나은 방법이 있나요 : 병목
질문을 식별?
- 내부 대기열을 사용하는 서비스의 경우 표준 성능 카운터를 사용하여 성능을 측정 할 때 문제가 발생합니다. 맞춤 카운터가 필요할 수 있습니다.
- # 1이 맞으면 테스트중인 서비스 코드를 변경하지 않고 고객 카운터를 소개 할 수 있습니까?
- 내 기능 테스트 결과에 신경 써야합니까?
- WCF 서비스 용 SLA를 [non-intrusively] 구현할 수 있습니까? (요청한 서비스, 예외 발생, 응답 시간 등으로 충분한 카운터가있는 경우 SLA의 유효성을 검사 할 수 있어야합니다. 요청 당 2 초의 응답 시간으로 5 분 이내에 200,000 개의 요청을 처리 할 수 있어야합니다. 내 질문은 아마 내가 SLA를 지정하고 제품/도구가 현장 뒤의 배관을 모두 할 수 있는지, 그리고 나에게 표로 된 대답을 줄 수 있는지 여부입니다. 알고 있습니다 ... 알고 있습니다 ... 나는 꿈을 꾸고있었습니다. :))
- 이외 : WCF 서비스에서 내부적으로 요청을 대기열에 넣는 가장 좋은 방법은 무엇입니까?