2013-06-08 3 views
0

Windows 용 - 웹 응용 프로그램을 벤치마킹하는 중입니다. 인수 용으로 parseText()라는 단일 메서드가 있습니다.성능 조정 CPU가 고정되어 있지 않고 메모리가 충분하지 않습니다.

단일 인스턴스 실행은 10ms 미만입니다. 그러나 최대 10 개의 동시 요청을 처리하면 작업 속도가 크게 느려집니다. 요청 당 1 초를 말하십시오.

CPU가 고정되어 있지 않으며 사용할 수있는 메모리가 충분합니다. 그래서 병목 현상이 무엇인지 혼란 스럽습니다.

하나의 생각은 메모리 대기 시간이나 버스 대역폭이 문제가 될 수 있지만 어떤 perfmon 카운터가 이와 같은 것을 나타낼 지 잘 모르겠습니다.

누군가가 문제에 대해 밝힐 수있는 몇 가지 카운터를 제안 할 수 있습니까?

답변

1

첫 번째 추측은 디스크 IO 또는 뮤텍스입니다.

디스크의 경우 실제 디스크 추가, 바이트/초 읽기 및 바이트/초 쓰기 및 초당 쓰기/초 (읽기 및 쓰기에 대한 총 바이트 수 및 실제 IO 수)를 확인하십시오. 스파이크. 원하는 경우 대기열 길이를 추가 할 수도 있습니다. 당신은 10Mb/sec와 같은 큰 교대 또는 작은 IO의 많은 것을 찾고 있습니다.

메모리 할당의 부작용이 될 수있는 뮤텍스의 경우 (매우 자주 메모리 할당이 발생할 수 있음) "시스템"및 컨텍스트 스위치/초 및 시스템 호출/초를 추가하십시오. 이것들은 일반적인 하중에서 조금 튀어 오릅니다, 그래서 먼저 느낌을 얻은 다음 어떻게되는지보십시오.

메모리 대역폭 (FSB 소모)으로 인해 생각된다면 perfmon이이를 측정 할 수 있다고 생각하지 않습니다. vtune과 비슷한 옵션으로 전환해야 할 수도 있습니다. 당신. 주 메모리 대역폭을 소모하는 예는 많은 양의 메모리를 할당 한 다음 각 바이트를 일부 값으로 초기화하는 프로그램이며이 LOTS를 수행합니다. 이것이 문제라고 생각한다면, 코드 프로파일 러를 사용하여 루틴을 격리해야 할 수도 있지만, 프로그램 외부에 있고 관찰하는 경우에는 어렵습니다.

+0

고마워요, 컨텍스트 스위치/초 및 시스템 호출/초가 벽을 치는 것처럼 보입니다. 테스트 할 때로드 할 스레드 수를 늘릴 수 있으며 컨텍스트 전환 횟수/초 및 시스템 호출/초 점프 및 성능을 초과 할 때마다 단계별로 테스트 할 수 있습니다. 배수관을 내려 간다. 그래서 뮤텍스가 근본 원인 일 가능성이 높습니다. 이상한 점은이 벽에 부딪혔다가 문맥 스위치에서 큰 도약을하게된다는 것입니다. –