방법: 명령줄에서 프로파일러를 사용하여 동적으로 컴파일된 ASP.NET 웹 응용 프로그램 계측 및 자세한 타이밍 데이터 수집

이 항목에서는 Visual Studio 프로파일링 도구의 명령줄 도구를 사용하여 계측 프로파일링 방법으로 동적으로 컴파일된 ASP.NET 응용 프로그램에 대한 자세한 타이밍 데이터를 수집하는 방법을 설명합니다.

참고

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

ASP.NET 웹 응용 프로그램에서 성능 데이터를 수집하려면 VSInstr.exe 도구를 통해 동적으로 컴파일된 응용 프로그램 파일을 계측하도록 대상 응용 프로그램의 web.config 파일을 수정합니다. 그런 다음 VSPerfCLREnv.cmd 도구를 사용하여 프로파일링을 사용할 수 있도록 웹 서버에 적절한 환경 변수를 설정한 다음 컴퓨터를 다시 시작합니다.

프로파일러를 시작한 다음 대상 응용 프로그램을 실행합니다. 프로파일러가 응용 프로그램에 연결되면 데이터 수집을 일시 중지하고 다시 시작할 수 있습니다. 프로파일링이 끝나면 응용 프로그램을 고, IIS(인터넷 정보 서비스) 작업자 프로세스를 닫은 후 프로파일러를 종료합니다. 프로파일링 작업을 마치면 web.config 파일 및 웹 서버를 원래 상태로 복원합니다.

ASP.NET 웹 응용 프로그램 및 웹 서버 구성

ASP.NET 웹 응용 프로그램 및 웹 서버를 구성하려면

  1. 대상 응용 프로그램의 web.config 파일을 수정합니다. 방법: 계측할 Web.Config 파일 수정 및 동적으로 컴파일된 ASP.NET 웹 응용 프로그램 프로파일링을 참조하세요.

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

  3. 프로파일링 환경 변수를 초기화합니다. 유형:

    VSPerfClrEnv /globaltraceon

    • /globaltraceon은 계측 방법을 사용하여 프로파일링을 활성화합니다.
  4. 컴퓨터를 다시 시작합니다.

프로파일링 세션 실행

웹 응용 프로그램을 프로파일링하려면

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

  2. 프로파일러를 시작합니다. 유형:

    VSPerfCmd /start :trace /output : OutputFile [Options]

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

    • /start에는 /output:OutputFile 옵션이 필요합니다. OutputFile은 프로파일링 데이터(.vsp) 파일의 이름과 위치를 지정합니다.

      /start:trace 옵션과 다음 옵션을 함께 사용할 수 있습니다.

    참고

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

    옵션 설명
    /user :[Domain\]UserName ASP.NET 작업자 프로세스를 소유한 계정의 도메인 및 사용자 이름을 지정합니다. 이 옵션은 프로세스가 로그온한 사용자 이외의 사용자로 실행 중인 경우 필요합니다. [Windows 작업 관리자]의 [프로세스] 탭에 있는 [사용자 이름] 열에 프로세스 소유자가 나열됩니다.
    /crosssession 프로세스 프로파일링 기능을 다른 로그온 세션에서 사용하도록 설정합니다. 이 옵션은 ASP.NET 응용 프로그램이 다른 세션에서 실행 중인 경우 필요합니다. [Windows 작업 관리자]의 [프로세스] 탭에 있는 [세션 ID] 열에 세션 식별자가 나열됩니다. /CS/crosssession에 대한 약어로 지정할 수 있습니다.
    /globaloff 데이터 수집을 일시 중지한 상태로 프로파일러를 시작합니다. /globalon을 사용하여 프로파일링을 다시 시작합니다.
    /counter : Config Config에 지정된 프로세서 성능 카운터에서 정보를 수집합니다. 카운터 정보는 각 프로파일링 이벤트에서 수집되는 데이터에 추가됩니다.
    /wincounter : WinCounterPath 프로파일링 중에 수집할 Windows 성능 카운터를 지정합니다.
    /automark : Interval /wincounter와 함께 사용해야 합니다. Windows 성능 카운터 수집 이벤트 사이에 경과하는 시간(밀리초)을 지정합니다. 기본값은 500ms입니다.
    /events : Config 프로파일링 중에 수집할 ETW(Windows용 이벤트 추적) 이벤트를 지정합니다. ETW 이벤트는 별도의 파일(.etl)로 수집됩니다.
  3. 일반적인 방법으로 ASP.NET 웹 응용 프로그램을 시작합니다.

데이터 컬렉션 제어

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

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

  • 다음 옵션 쌍을 사용하여 데이터 수집을 시작 및 중지합니다. 각 옵션을 개별 명령줄에서 지정합니다. 데이터 수집을 여러 번 켜고 끌 수 있습니다.

    옵션 설명
    /globalon /globaloff 모든 프로세스에 대한 데이터 수집을 시작(/globalon) 또는 중지(/globaloff)합니다.
    /processon : PID /processoff : PID 프로세스 ID(PID)로 지정된 프로세스에 대한 데이터 수집을 시작(/processon) 또는 중지(/processoff)합니다.
    /threadon : TID /threadoff : TID 스레드 ID(TID)로 지정된 스레드에 대한 데이터 수집을 시작(/threadon) 또는 중지(/threadoff)합니다.
  • VSPerfCmd.exe/mark 옵션을 사용하여 프로파일링 표시를 데이터 파일에 삽입할 수 있습니다. /mark 명령은 식별자, 타임스탬프 및 선택적 사용자 정의 텍스트 문자열을 추가합니다. 표식을 사용하여 프로파일러 보고서 및 데이터 뷰에서 데이터를 필터링할 수 있습니다.

프로파일링 세션 종료

프로파일링 세션을 종료하려면 대상 ASP.NET 웹 응용 프로그램을 닫고, IIS를 다시 설정하여 프로파일링된 프로세스를 중지하고, 프로파일러를 종료합니다.

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

  1. ASP.NET 웹 응용 프로그램을 닫습니다.

  2. IIS(인터넷 정보 서비스)를 다시 설정하여 ASP.NET 작업자 프로세스를 닫습니다. 유형:

    IISReset /stop

  3. 프로파일러를 종료합니다. 형식:

    VSPerfCmd /shutdown

  4. IIS를 다시 시작합니다. 유형:

    IISReset /start

응용 프로그램 및 컴퓨터 구성 복원

모든 프로파일링을 완료한 후 web.config 파일을 바꾸고, 프로파일링 환경 변수를 지우고, 컴퓨터를 다시 시작하여 응용 프로그램 및 서버를 프로파일링 이전 상태로 복원합니다.

응용 프로그램 및 컴퓨터 구성을 복원하려면

  1. web.config 파일을 원본 파일의 복사본으로 바꿉니다.

  2. 프로파일링 환경 변수를 지웁니다. 유형:

    VSPerfCmd /globaloff

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

참고 항목

ASP.NET 웹 응용 프로그램 프로파일링
계측 방법 데이터 뷰