방법: 명령줄을 통해 ASP.NET 웹 응용 프로그램에 프로파일러를 연결하여 메모리 데이터 수집How to: Attach the Profiler to an ASP.NET Web Application to Collect Memory Data by Using the Command Line

이 항목은 Visual StudioVisual Studio 프로파일링 도구 명령줄 도구를 사용하여 프로파일러를 ASP.NETASP.NET 웹 응용 프로그램에 연결하고 .NET Framework 메모리 할당의 수와 크기에 대한 데이터를 수집하는 방법을 설명합니다.This topic describes how to use Visual StudioVisual Studio Profiling Tools command-line tools to attach the profiler to a ASP.NETASP.NET Web application and collect data about the number and size of .NET Framework memory allocations. .NET Framework 메모리 개체의 수명에 대한 데이터를 수집할 수도 있습니다.You can also collect data about the lifetime of .NET Framework memory objects.

참고

프로파일링 도구의 명령줄 도구는 Visual StudioVisual Studio 설치 디렉터리의 \Team Tools\Performance Tools 하위 디렉터리에 있습니다.Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the Visual StudioVisual Studio installation directory. 64비트 컴퓨터에서는 도구의 64비트 및 32비트 버전을 둘 다 사용할 수 있습니다.On 64-bit computers, both 64-bit and 32-bit versions of the tools are available. 프로파일러 명령줄 도구를 사용하려면 도구 경로를 명령 프롬프트 창의 PATH 환경 변수에 추가하거나 명령 자체에 추가해야 합니다.To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the Command Prompt window or add it to the command itself. 자세한 내용은 명령줄 도구의 경로 지정을 참조하세요.For more information, see Specifying the Path to Command Line Tools.

ASP.NETASP.NET 웹 응용 프로그램에서 성능 데이터를 수집하려면 VSPerfCLREnv.cmd 도구를 사용해서 ASP.NETASP.NET 웹 응용 프로그램을 호스팅하는 컴퓨터에서 적합한 환경 변수를 초기화해야 합니다.To collect performance data from a ASP.NETASP.NET Web application, you must use the VSPerfCLREnv.cmd tool to initialize the appropriate environment variables on the computer that hosts the ASP.NETASP.NET Web application. 그런 다음 컴퓨터를 다시 시작해서 프로파일링용으로 웹 서버를 구성해야 합니다.You must then restart the computer to configure the Web server for profiling.

그런 다음 VSPerfCmd.exe 도구를 사용하여 프로파일러를 웹 사이트를 호스팅하는 ASP.NETASP.NET 작업자 프로세스에 연결합니다.You then use the VSPerfCmd.exe tool to attach the profiler to the ASP.NETASP.NET worker process that hosts your Web site. 프로파일러가 응용 프로그램에 연결되면 데이터 수집을 일시 중지하고 다시 시작할 수 있습니다.When the profiler is attached to the application, you can pause and resume data collection.

프로파일링 세션을 종료하려면 프로파일러가 응용 프로그램에 연결되어 있으면 안 되고 프로파일러가 명시적으로 종료되어야 합니다.To end a profiling session, the profiler must no longer be attached to the application and the profiler must be explicitly shut down. 대부분의 경우 세션 종료 시 프로파일링 환경 변수를 지우는 것이 좋습니다.In most cases, we recommend clearing the profiling environment variables at the end of a session.

프로파일러 연결Attaching the Profiler

ASP.NET 웹 응용 프로그램에 프로파일러를 연결하려면To attach the Profiler to an ASP.NET Web application

  1. 명령 프롬프트 창을 엽니다.Open a Command Prompt window.

  2. 프로파일링 환경 변수를 초기화합니다.Initialize the profiling environment variables. 유형:Type:

    VSPerfClrEnv {/globalsamplegc | /globalsamplegclife} [/samplelineoff]VSPerfClrEnv {/globalsamplegc | /globalsamplegclife} [/samplelineoff]

    • 옵션 /globalsamplegc/globalsamplegclife는 수집할 메모리 데이터의 유형을 지정합니다.The options /globalsamplegc and /globalsamplegclife specify the type of memory data to collect.

      다음 옵션 중 하나만을 지정합니다.Specify one and only one of the following options.

      옵션Option 설명Description
      /globalsamplegc/globalsamplegc 메모리 할당 데이터만 수집하도록 합니다.Enables the collection of memory allocation data.
      /globalsamplegclife/globalsamplegclife 메모리 할당 데이터 및 개체 수명 데이터를 둘 다 수집하도록 합니다.Enables the collection of both memory allocation data and object lifetime data.
    • 옵션 /samplelineoff를 선택하면 수집된 데이터를 특정 소스 코드 줄에 할당하는 기능이 사용하지 않도록 설정됩니다.The option /samplelineoff disables the assignment of collected data to specific source code lines. 이 옵션을 지정하면 데이터가 함수 수준에서 할당됩니다.If this option is specified, data is assigned at the function level.

  3. 컴퓨터를 다시 시작하여 새 환경 구성을 설정합니다.Restart the computer to set the new environment configuration.

  4. 명령 프롬프트 창을 엽니다.Open a Command Prompt window. 필요에 따라 프로파일러 경로 환경 변수를 설정합니다.If necessary, set the profiler path enviroment variable.

  5. 프로파일러를 시작합니다.Start the profiler. 유형:Type:

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

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

    • /start에는 /output:OutputFile 옵션이 필요합니다.The /output:OutputFile option is required with /start. OutputFile은 프로파일링 데이터(.vsp) 파일의 이름과 위치를 지정합니다.OutputFile specifies the name and location of the profiling data (.vsp) file.

      /start:sample 옵션과 다음 옵션을 함께 사용할 수 있습니다.You can use any of the following options with the /start:sample option.

    참고

    /user/crosssession 옵션은 대개 ASP.NET 응용 프로그램에 필요합니다.The /user and /crosssession options are usually required for ASP.NET applications.

    옵션Option 설명Description
    /user :[Domain\]UserName/user :[Domain\]UserName ASP.NET 작업자 프로세스를 소유한 계정의 도메인 및 사용자 이름을 지정합니다.Specifies the domain and user name of the account that owns the ASP.NET worker process. 이 옵션은 프로세스가 로그온한 사용자 이외의 사용자로 실행 중인 경우 필요합니다.This option is required if the process is running as a user other than the logged-on user. [Windows 작업 관리자]의 [프로세스] 탭에 있는 [사용자 이름] 열에 프로세스 소유자가 나열됩니다.The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.
    /crosssession/crosssession 프로세스 프로파일링 기능을 다른 로그온 세션에서 사용하도록 설정합니다.Enables profiling of processes in other logon sessions. 이 옵션은 ASP.NET 응용 프로그램이 다른 세션에서 실행 중인 경우 필요합니다.This option is required if the ASP.NET application is running in a different session. Windows 작업 관리자의 프로세스 탭에 있는 세션 ID 열에 세션 식별자가 나열됩니다.The session idenitifier is listed in the Session ID column on the Processes tab of Windows Task Manager. /CS/crosssession에 대한 약어로 지정할 수 있습니다./CS can be specified as an abbreviation for /crosssession.
    /waitstart [:Interval]/waitstart [:Interval] 프로파일러가 오류를 반환하기 전에 초기화될 때까지 기다리는 시간(초)을 지정합니다.Specifies the number of seconds to wait for the profiler to initialize before it returns an error. Interval이 지정되지 않은 경우 프로파일러는 무기한 기다립니다.If Interval is not specified, the profiler waits indefinitely. 기본적으로 /start는 즉시 반환합니다.By default, /start returns immediately.
    /wincounter : WinCounterPath/wincounter : WinCounterPath 프로파일링 중에 수집할 Windows 성능 카운터를 지정합니다.Specifies a Windows performance counter to be collected during profiling.
    /automark : Interval/automark : Interval /wincounter와 함께 사용해야 합니다.Use with /wincounter only. Windows 성능 카운터 수집 이벤트 사이에 경과하는 시간(밀리초)을 지정합니다.Specifies the number of milliseconds between Windows performance counter collection events. 기본값은 500ms입니다.Default is 500 ms.
    /events : Config/events : Config 프로파일링 중에 수집할 ETW(Windows용 이벤트 추적) 이벤트를 지정합니다.Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW 이벤트는 별도의 파일(.etl)로 수집됩니다.ETW events are collected in a separate (.etl) file.
  6. 일반적인 방법으로 ASP.NETASP.NET 웹 응용 프로그램을 시작합니다.Start the ASP.NETASP.NET Web application in the typical way.

  7. 프로파일러를 ASP.NETASP.NET 작업자 프로세스에 연결합니다.Attach the profiler to the ASP.NETASP.NET worker process. 유형:Type:

    VSPerfCmd /attach :{PID|ProcName} [/targetclr:Version]VSPerfCmd /attach :{PID|ProcName} [/targetclr:Version]

    • 프로세스 ID (PID)는 프로세스 ID 또는 ASP.NETASP.NET 작업자 프로세스의 프로세스 이름을 지정합니다.The process ID (PID) specifies the process ID or the process name of the ASP.NETASP.NET worker process. [Windows 작업 관리자]에서 모든 실행 중인 프로세스의 프로세스 ID를 볼 수 있습니다.You can view the process IDs of all running processes in Windows Task Manager.

    • /targetclr: Version은 한 응용 프로그램에 두 개 이상의 런타임 버전이 로드된 경우 프로파일링할 CLR(공용 언어 런타임) 버전을 지정합니다./targetclr: Version specifies the version of the common language runtime (CLR) to profile when more than one version of the runtime is loaded in an application.

데이터 수집 제어Controlling Data Collection

응용 프로그램이 실행 중이면 VSPerfCmd.exe 옵션을 사용하여 프로파일러 데이터 파일에 대한 데이터 쓰기를 시작하고 중지하는 방식으로 데이터 수집을 제어할 수 있습니다.While the application is running, you can control data collection by starting and stopping the writing of data to the profiler data file by using VSPerfCmd.exe options. 데이터 수집을 제어하면 응용 프로그램의 시작 또는 종료와 같이 프로그램 실행의 특정 부분에 대한 데이터를 수집할 수 있습니다.Controlling data collection enables you to collect data for a specific part of program execution, such as starting or shutting down the application.

데이터 수집을 시작 및 중지하려면To start and stop data collection

  • VSPerfCmd 옵션의 다음 쌍을 사용하여 데이터 수집을 시작 및 중지합니다.The following pairs of VSPerfCmd options start and stop data collection. 각 옵션을 개별 명령줄에서 지정합니다.Specify each option on a separate command line. 데이터 수집을 여러 번 켜고 끌 수 있습니다.You can turn data collection on and off multiple times.

    옵션Option 설명Description
    /globalon /globaloff/globalon /globaloff 모든 프로세스에 대한 데이터 수집을 시작(/globalon) 또는 중지(/globaloff)합니다.Starts (/globalon) or stops (/globaloff) data collection for all processes.
    /processon : PID /processoff : PID/processon : PID /processoff : PID PID로 지정된 프로세스에 대한 데이터 수집을 시작(/processon) 또는 중지(/processoff)합니다.Starts (/processon) or stops (/processoff) data collection for the process specified by the PID.
    /attach:{PID|ProcName} /detach[:{PID|:ProcName}]/attach:{PID|ProcName} /detach[:{PID|:ProcName}] /attach는 프로세스 ID 또는 프로세스 이름으로 지정된 프로세스에 대한 데이터 수집을 시작합니다./attach starts to collect data for the process that is specified by the process ID or process name. /detach는 지정된 프로세스 또는 모든 프로세스(특정 프로세스가 지정되지 않은 경우)에 대한 데이터 수집을 중지합니다./detach stops data collection for the specified process or for all processes if a specific process is not specified.

프로파일링 세션 종료Ending the Profiling Session

프로파일링 세션을 종료하려면 웹 응용 프로그램에서 프로파일러를 분리해야 합니다.To end a profiling session, the profiler must be detached from the Web application. ASP.NETASP.NET 작업자 프로세스를 다시 시작하거나 VSPerfCmd /detach 옵션을 호출하여 샘플링 방법으로 프로파일링된 응용 프로그램에서 데이터 수집을 중지할 수 있습니다.You can stop the collection of data from an application that is profiled with the sampling method by restarting the ASP.NETASP.NET worker process or by calling the VSPerfCmd /detach option. 그러고 나서 VSPerfCmd /shutdown 옵션을 호출하여 프로파일러를 끄고 프로파일링 데이터 파일을 닫습니다.You then call the VSPerfCmd /shutdown option to turn off the profiler and close the profiling data file. VSPerfClrEnv /globaloff 명령은 프로파일링 환경 변수를 지우지만 컴퓨터가 다시 시작될 때까지 시스템 구성이 다시 설정되지 않습니다.The VSPerfClrEnv /globaloff command clears the profiling environment variables, but the system configuration is not reset until the computer is restarted.

프로파일링 세션을 종료하려면To end a profiling session

  1. 대상 응용 프로그램에서 프로파일러를 분리하려면 다음 단계 중 하나를 수행합니다.Perform one of the following steps to detach the profiler from the target application:

    • VSPerfCmd /detach 입력Type VSPerfCmd /detach

      또는-or-

    • ASP.NETASP.NET 작업자 프로세스를 닫습니다.Close the ASP.NETASP.NET worker process. 유형:Type:

      IISReset /stopIISReset /stop

  2. 프로파일러를 종료합니다.Shut down the profiler. 형식:Type:

    VSPerfCmd /shutdownVSPerfCmd /shutdown

  3. (선택 사항) 프로파일링 환경 변수를 지웁니다.(Optional) Clear the profiling environment variables. 유형:Type:

    VSPerfCmd /globaloffVSPerfCmd /globaloff

  4. 컴퓨터를 다시 시작합니다.Restart the computer. 필요에 따라 IIS(인터넷 정보 서비스)를 다시 시작합니다.If necessary, restart Internet Information Services (IIS). 유형:Type:

    IISReset /startIISReset /start

참고 항목See Also

ASP.NET 웹 응용 프로그램 프로파일링 Profiling ASP.NET Web Applications
.NET 메모리 데이터 뷰.NET Memory Data Views