방법: 명령줄을 통해 ASP.NET 웹 응용 프로그램에 프로파일러를 연결하여 응용 프로그램 통계 수집

이 항목에서는 Visual Studio 프로파일링 도구의 명령줄 도구를 사용하여 ASP.NET 웹 응용 프로그램에 프로파일러를 연결하고 샘플링 방법을 사용하여 성능 통계를 수집하는 방법에 대해 설명합니다.

[!참고]

향상 된 보안 기능 Windows 8과 Windows Server 2012 Visual Studio 프로파일러는 이러한 플랫폼에서 데이터를 수집 하는 방식에서 중요 한 변화를입니다.Windows 저장소 응용 프로그램에도 새 컬렉션 기술이 필요합니다.자세한 내용은 Windows 8 및 Windows Server 2012 응용 프로그램 프로파일링를 참조하십시오.

에 프로 파일링 실행 시 계층 상호 작용 데이터 추가 특정 절차가 명령줄 프로 파일링 도구에 필요 합니다.자세한 내용은 명령줄에서 계층 상호 작용 데이터 추가를 참조하십시오.

프로파일링 도구의 명령줄 도구는 Visual Studio 설치 디렉터리의 \Team Tools\Performance Tools 하위 디렉터리에 있습니다.64비트 컴퓨터에서는 64비트 및 32비트 버전의 도구를 모두 사용할 수 있습니다.프로파일러 명령줄 도구를 사용하려면 해당 도구 경로를 명령 프롬프트 창의 PATH 환경 변수에 추가하거나 명령 자체에 추가해야 합니다.자세한 내용은 프로파일링 도구 명령줄 도구의 경로 지정을 참조하십시오.

ASP.NET 웹 응용 프로그램에서 성능 데이터를 수집하려면 적절한 환경 변수를 초기화하고 ASP.NET 웹 응용 프로그램을 호스팅하는 컴퓨터를 다시 시작하여 웹 서버를 프로파일링에 맞게 구성해야 합니다.

그런 다음 웹 사이트를 호스팅하는 ASP.NET 작업자 프로세스에 프로파일러를 연결합니다.응용 프로그램에 프로파일러가 연결되어 있을 때 데이터 수집을 일시 중지했다가 다시 시작할 수 있습니다.

프로파일링 세션을 종료하려면 프로파일링되는 응용 프로그램에서 프로파일러를 분리해야 하며 프로파일러를 명시적으로 종료해야 합니다.대부분의 경우 세션을 종료할 때 프로파일링 환경 변수를 지우는 것이 좋습니다.

프로파일러 시작 및 ASP.NET 웹 응용 프로그램에 연결

ASP.NET 웹 응용 프로그램에 프로파일러를 연결하려면

  1. 명령 프롬프트 창을 엽니다.

  2. 프로파일링 환경 변수를 초기화합니다.다음을 입력합니다.

    VSPerfClrEnv /globalsampleon [/samplelineoff]

    • /globalsampleon은 샘플링을 사용하도록 설정합니다.

    • /samplelineoff는 특정 소스 코드 줄에 수집된 데이터를 할당할 수 없도록 합니다.이 옵션을 지정하면 데이터가 함수에만 할당됩니다.

  3. 컴퓨터를 다시 시작합니다.

  4. 프로파일러를 시작합니다.Type:VSPerfCmd/start:sample/output**:**OutputFileOptions

    • /start:sample 옵션은 프로파일러를 초기화합니다.

    • /start와 함께 **/output:**OutputFile 옵션을 사용해야 합니다.OutputFile은 프로파일링 데이터 파일(.vsp)의 이름과 위치를 지정합니다.

    다음 옵션 중 하나를 /start:sample 옵션과 함께 사용할 수 있습니다.

    [!참고]

    /user/crosssession 옵션은 대개 ASP.NET 응용 프로그램에 필요합니다.

    옵션

    설명

    /user:[Domain\]UserName

    ASP.NET 작업자 프로세스를 소유하는 계정의 도메인 및 사용자 이름을 지정합니다.이 옵션은 로그온한 사용자 이외의 사용자 권한으로 프로세스가 실행되는 경우에 필요합니다.해당 프로세스 소유자는 Windows 작업 관리자에서 프로세스 탭의 사용자 이름 열에 표시됩니다.

    /crosssession

    다른 로그온 세션에서 프로세스를 프로파일링할 수 있도록 합니다.이 옵션은 ASP.NET 응용 프로그램이 다른 세션에서 실행되고 있는 경우에 필요합니다.세션 식별자는 Windows 작업 관리자에서 프로세스 탭의 세션 ID 열에 표시됩니다./crosssession의 약식 표현으로 /CS를 지정해도 됩니다.

    /wincounter:WinCounterPath

    프로파일링 중 수집할 Windows 성능 카운터를 지정합니다.

    /automark:Interval

    /wincounter에만 사용합니다.Windows 성능 카운터 수집 이벤트의 시간 간격(밀리초)을 지정합니다.기본값은 500밀리초입니다.

    /events:Config

    프로파일링 중 수집할 ETW(Windows용 이벤트 추적) 이벤트를 지정합니다.ETW 이벤트는 별도의 파일(.etl)에 수집됩니다.

  5. 일반적인 방식으로 ASP.NET 웹 응용 프로그램을 시작합니다.

  6. ASP.NET 작업자 프로세스에 프로파일러를 연결합니다.Type:VSPerfCmd/attach:{PID |ProcName} [Sample Event] [/targetclr**:**Version]을 입력합니다.

    • PID는 ASP.NET 작업자 프로세스의 프로세스 ID를 지정하고, ProcName은 작업자 프로세스의 이름을 지정합니다.Windows 작업 관리자에서 실행 중인 모든 프로세스의 프로세스 ID와 이름을 볼 수 있습니다.

    • 기본적으로 성능 데이터는 중단되지 않은 프로세서 클록 주기 수가 10,000,000개가 될 때마다 샘플링됩니다.1GH 프로세서에서 이 값은 대략 초당 100회에 해당합니다.다음 VSPerfCmd 옵션 중 하나를 지정하여 클록 주기 간격을 변경하거나 다른 샘플링 이벤트를 지정할 수 있습니다.

    샘플 이벤트

    설명

    /timer:Interval

    샘플링 간격을 Interval에 지정된 중단되지 않은 클록 주기 수로 변경합니다.

    /pf[:Interval]

    샘플링 이벤트를 페이지 폴트로 변경합니다.Interval이 지정된 경우 샘플 간의 페이지 폴트 수를 설정합니다.기본값은 10입니다.

    /sys[:Interval]

    샘플링 이벤트를 해당 프로세스에서 운영 체제 커널로의 시스템 호출(syscall)로 변경합니다.Interval이 지정된 경우 샘플 간의 호출 수를 설정합니다.기본값은 10입니다.

    /counter:Config

    샘플링 이벤트와 간격을 각각 Config에 지정된 프로세서 성능 카운터와 간격으로 변경합니다.

    /targetclr:Version

    응용 프로그램에 둘 이상의 런타임 버전이 로드될 때 프로파일링할 CLR(공용 언어 런타임) 버전을 지정합니다.

    • **targetclr:**Version은 응용 프로그램에 둘 이상의 CLR 버전이 로드될 때 프로파일링할 런타임 버전을 지정합니다.선택 사항입니다.

데이터 수집 제어

응용 프로그램이 실행 중일 때는 VSPerfCmd.exe 옵션을 사용하여 파일에 데이터를 기록하는 작업을 시작하고 중지하는 방법으로 데이터 수집을 제어할 수 있습니다.데이터 수집을 제어하면 응용 프로그램의 시작 또는 종료와 같은 프로그램 실행의 특정 부분에 대해 데이터를 수집할 수 있습니다.

데이터 수집을 시작 및 중지하려면

  • 다음과 같은 VSPerfCmd 옵션 쌍으로 데이터 수집을 시작하고 중지할 수 있습니다.각 옵션을 별도의 명령줄에 지정합니다.데이터 수집을 여러 번 설정하거나 해제할 수 있습니다.

    옵션

    설명

    /globalon /globaloff

    모든 프로세스에 대해 데이터 수집을 시작(/globalon)하거나 중지(/globaloff)합니다.

    /processon:PID/processoff:PID

    PID로 지정된 프로세스에 대해 데이터 수집을 시작(/processon)하거나 중지(/processoff)합니다.

    /attach:{PID|ProcName} /detach[:{PID|ProcName}]

    /attach는 PID 또는 프로세스 이름(ProcName)으로 지정된 프로세스에 대해 데이터 수집을 시작합니다./detach는 지정된 프로세스 또는 모든 프로세스(특정 프로세스가 지정되지 않은 경우)에 대해 데이터 수집을 중지합니다.

  • VSPerfCmd.exe/mark 옵션을 사용하여 데이터 파일에 프로파일링 표시를 삽입할 수도 있습니다./mark 명령은 식별자, 타임스탬프 및 선택적 사용자 정의 텍스트 문자열을 추가합니다.표시를 사용하여 프로파일러 보고서와 데이터 뷰에서 데이터를 필터링할 수 있습니다.

프로파일링 세션 종료

프로파일링 세션을 종료하려면 ASP.NET 웹 응용 프로그램을 닫은 다음 IIS(인터넷 정보 서비스) IISReset 명령을 사용하여 ASP.NET 작업자 프로세스를 닫습니다.호출 된 VSPerfCmd/shutdown 프로 파일링 데이터 파일을 닫고 프로파일러를 해제 하는 옵션입니다.

VSPerfClrEnv /globaloff 명령은 프로파일링 환경 변수를 지웁니다.새 환경 설정을 적용하려면 컴퓨터를 다시 시작해야 합니다.

VSPerfClrEnv /globaloff 명령은 프로파일링 환경 변수를 지우지만 컴퓨터가 다시 시작되기 전까지 시스템 구성은 다시 설정되지 않습니다.

프로파일링 세션을 종료하려면

  1. 다음 중 하나를 수행하여 대상 응용 프로그램에서 프로파일러를 분리합니다.

    • VSPerfCmd /detach를 입력합니다.

      또는

    • ASP.NET 작업자 프로세스를 닫습니다.

  2. 프로파일러를 종료합니다.Type:VSPerfCmd/shutdown

  3. (선택 사항) 프로파일링 환경 변수를 지웁니다.다음을 입력합니다.

    VSPerfCmd /globaloff

  4. 컴퓨터를 다시 시작합니다.

참고 항목

개념

ASP.NET 웹 응용 프로그램의 명령줄 프로파일링

기타 리소스

프로파일러 샘플링 방법 데이터 뷰