2013-08-25 1 views
0

현재 asp.net mvc 응용 프로그램을 실행 중입니다. 부하가 높은 상태에서 사이트가 최대 100 %로보고 있습니다. 이것은 사실이 아니어야하며 성능 저하를 초래하는 애플리케이션에 문제가있을 수 있다고 생각합니다. 이 응용 프로그램은 SQL Server 데이터베이스와 통신하는 wcf 서비스 계층에 직접 통신합니다. 100 % CPU를 MVC 응용 프로그램에 직접 할당 할 수 있으므로 wcf 계층이나 데이터베이스 계층에는 성능 문제가 없습니다.매우 높은 CPU를 가진 mvc 응용 프로그램을위한 프로파일 링 도구

따라서 MVC 응용 프로그램에서 문제가 발생할 수있는 프로파일 링을보고 있습니다. 코드를 변경하지 않는 것이 좋습니다. 서버는 IIS 7.5가 설치된 Windows Server 2008 R2입니다.

이 도구를 지원하는 데 사용할 수있는 도구는 무엇입니까? 우선 저는 성능 카운터를 설정하려고합니다.

+0

http://miniprofiler.com/ –

답변

3

저는 시작하기가 힘든 것으로 알고 있지만 느리게 시작하여 응용 프로그램이 성능 저하가 발생하는 이유에 대한 가설을 세웁니다. 시작하기에 좋은 장소는이 문서에 따라, 기본 성능 모니터 카운터 및 debugdiag 함께 :

Troubleshooting High CPU in an IIS 7.x Application Pool

이 주제에 대한 SO 게시물의 톤이있다, 그래서 확실히 당신의 연구를. 좋은 프로파일 러는 여기에서 확실히 도움이 될 수 있습니다. ASP.NET MVC 어플리케이션의 경우 Red Gate ANTS을 권하고 싶습니다. DB 및 다른 다운 스트림 시스템에 대한 호출 시간 및 위치를 표시 할 수 있기 때문입니다.

0

프로그램이 실행중인 코어의 100 %를 차지하는 경우, 이는 I/O (또는 휴면) 시간에 대한 CPU 시간의 비율이 매우 높음을 의미합니다. 이것이 정상적인 경우 CPU 시간을 한 단계 줄이면 10 배나 많은 작업이 완료 되더라도 거의 100 % CPU를 표시 할 수 있습니다. 즉, CPU 퍼센트보다 성능 진단이 더 좋습니다.

좋은 점은 1 초 또는 1 분당 처리 할 수있는 트랜잭션이 얼마나 많습니까? 번호가 줄어들면 해결해야 할 문제가 있음을 알게됩니다.

내가 사용하는 방법은 느린 속도에서 stackshot samples을 얻고 검토하는 것입니다. 예를 들어, 50 % 가량의 용의자가있는 경우, 샘플의 약 50 %가 정밀하게 표시됩니다. 이것을 보려면 많은 샘플이 필요하지 않지만 각각을 검사해야합니다. 측정 결과가 어떻게되는지 알려주지 않습니다.