큰 부하가 걸린 서버 응용 프로그램에서 성능 병목 현상을 찾아야합니다. 응용 프로그램은 단일 서비스 인스턴스 (.asmx)와 http에서 수시로 요청되는 일부 파일로 구성됩니다. 이 문제를 해결하기위한 나의 계획은 1) 서버가 어떻게 든 실패하기 시작하는 예외적 인 상황에 도달해야합니다. 2) 성능 카운터와 로그를 분석하여 그 순간에 어떤 종류의 호출이 그 원인인지 확인하십시오.ASP.NET 웹 서비스 + IIS 성능 진단
이 작업을 시작하기 위해 두 가지 유형의 요청을 모두 처리하고 특정 시점에 무한정 희망하는 특정 클라이언트를 구현 한 특수 클라이언트를 구현했습니다. WebMethod/GET URL 요청 중에 오류가 발생합니다 (NB - 표준 기존 솔루션 JMeter 및 WAPT는 서비스 사용 시나리오의 복잡성에 이중으로 사용될 수 없습니다. 지금까지 내가 관찰 한 것은 서비스 호출의 응답 시간 증가와 파일로드 중 일부 네트워크 시간 초과 예외 (HttpClient를 사용하여 -에 따라 시간 초과로 간주되는 OperationCanceledException을 throw 함)입니다. Btw는 파일 크기가 kb kb이기 때문에 이상합니다. 서비스 메소드는 요청 당 5-10MB의 데이터를 반환합니다. "더 큰"요청이 먼저 실패 할 확률이 높습니다.
성능 모니터링 (Perfmon)은 CPU 부하가 증가하고 메모리 스파이크/누출이 전혀 발생하지 않음을 보여줍니다. Request Execution Time 카운터는 꽤 무작위 적이며 관련이 없습니다. 큐 길이는 항상 0입니다.
IIS는 즉각적인 DDoS를 잘 처리하는 동시에 테스트 접근 방법을 비효율적으로 만듭니다 (응답 시간이 늘어남에 따라 어떤 시점에서 메모리 오버플로가 발생하는 테스트 클라이언트, 그리고 아무 것도하지 않고 데이터를받은 직후에 이미 데이터를 플러시하고 있습니다.)
추가 세부 정보 : 서버 컴퓨터는 4x3Ghz 코어, 4Gb RAM입니다. 초당 50-100 개의 요청로드를 생성하여 테스트 클라이언트가 서버의 데이터 센터, 4Gbps NIC 내부의 VM에 위치하며 10-20Mb/초 대역폭을 발생시킵니다. 30 분 테스트 세션은 서버와 클라이언트 사이의 순수한 데이터 전송의 ~ 10-30 Gb입니다.
웹 서비스/IIS를 실제로 어떻게 만들 수 있습니까?
서버 인프라에서 일부 오류가 발생하여 성능 병목 현상이 발생할 수있는 방법을 찾고 있었지만 이제는 무차별 대입 방식이 효과가 없다는 것이 확실합니다. 이 질문을 삭제하십시오. 미리 감사드립니다. – Jaded