메모리 사용량 모니터링Monitor Memory Usage

SQL ServerSQL Server 의 인스턴스를 주기적으로 모니터링하여 메모리 사용이 일반적인 범위를 벗어나지 않는지 확인할 수 있습니다.Monitor an instance of SQL ServerSQL Server periodically to confirm that memory usage is within typical ranges.

메모리 부족 상태를 모니터링하려면 다음 개체 카운터를 사용하세요.To monitor for a low-memory condition, use the following object counters:

  • Memory: Available BytesMemory: Available Bytes

  • Memory: Pages/secMemory: Pages/sec

    Available Bytes 카운터는 현재 프로세스에 사용할 수 있는 메모리의 바이트 수를 나타냅니다.The Available Bytes counter indicates how many bytes of memory are currently available for use by processes. Pages/sec 카운터는 하드 페이지 폴트 때문에 디스크에서 가져오거나 작업 집합 내의 디스크 여유 공간에 쓴 페이지 수를 나타냅니다.The Pages/sec counter indicates the number of pages that either were retrieved from disk due to hard page faults or written to disk to free space in the working set due to page faults.

    Available Bytes 카운터 값이 작으면 컴퓨터 전체 메모리가 부족하거나 응용 프로그램이 메모리를 해제하지 않는다는 의미입니다.Low values for the Available Bytes counter can indicate that there is an overall shortage of memory on the computer or that an application is not releasing memory. Pages/sec 카운터의 비율이 높으면 페이징이 과도하다는 의미입니다.A high rate for the Pages/sec counter could indicate excessive paging. 디스크 작업의 원인이 페이징이 아닌 것을 확인하려면 Memory: Page Faults/sec 카운터를 모니터링하세요.Monitor the Memory: Page Faults/sec counter to make sure that the disk activity is not caused by paging.

    컴퓨터에 사용 가능한 메모리가 충분하더라도 페이징 및 그로 인한 페이지 폴트 비율은 낮은 것이 일반적입니다.A low rate of paging (and hence page faults) is typical, even if the computer has plenty of available memory. Microsoft Windows VMM(Virtual Memory Manager)은 SQL ServerSQL Server 및 다른 프로세스의 작업 집합 크기를 줄일 때 이러한 프로세스에서 페이지를 가져옵니다.The Microsoft Windows Virtual Memory Manager (VMM) takes pages from SQL ServerSQL Server and other processes as it trims the working-set sizes of those processes. 이 VMM 작업으로 인해 페이지 폴트가 발생할 수 있습니다.This VMM activity tends to cause page faults. SQL ServerSQL Server 나 다른 프로세스가 과도한 페이징의 원인인지 확인하려면 프로세스 인스턴스의 Process: Page Faults/sec SQL ServerSQL Server 카운터를 모니터링하세요.To determine whether SQL ServerSQL Server or another process is the cause of excessive paging, monitor the Process: Page Faults/sec counter for the SQL ServerSQL Server process instance.

    과도한 페이징을 해결하는 방법은 Windows 운영 체제 설명서를 참조하세요.For more information about resolving excessive paging, see the Windows operating system documentation.

SQL Server가 사용하는 메모리 격리Isolating Memory Used by SQL Server

기본적으로 SQL ServerSQL Server 는 사용할 수 있는 시스템 리소스에 따라 메모리 요구 사항을 동적으로 변경합니다.By default, SQL ServerSQL Server changes its memory requirements dynamically, on the basis of available system resources. SQL ServerSQL Server 는 메모리가 더 필요할 경우 운영 체제를 쿼리하여 실제 여유 메모리가 사용 가능한지 확인하고 사용 가능한 메모리를 사용합니다.If SQL ServerSQL Server needs more memory, it queries the operating system to determine whether free physical memory is available and uses the available memory. SQL ServerSQL Server 에서는 현재 할당된 메모리가 필요하지 않은 경우 운영 체제에서 사용할 수 있도록 해당 메모리를 해제합니다.If SQL ServerSQL Server does not need the memory currently allocated to it, it releases the memory to the operating system. 그러나 minservermemorymaxservermemory 서버 구성 옵션을 사용하여 메모리를 동적으로 사용하도록 옵션을 재정의할 수 있습니다.However, you can override the option to dynamically use memory by using the minservermemory, and maxservermemory server configuration options. 자세한 내용은 서버 메모리 옵션을 참조하세요.For more information, see Server Memory Options.

SQL ServerSQL Server 에서 사용하는 메모리의 양을 모니터링하려면 다음 성능 카운터를 검사하세요.To monitor the amount of memory that SQL ServerSQL Server uses, examine the following performance counters:

  • Process: Working SetProcess: Working Set

  • SQL Server: Buffer Manager: Buffer Cache Hit RatioSQL Server: Buffer Manager: Buffer Cache Hit Ratio

  • SQL Server: Buffer Manager: Database PagesSQL Server: Buffer Manager: Database Pages

  • SQL Server: Memory Manager: Total Server Memory (KB)SQL Server: Memory Manager: Total Server Memory (KB)

    WorkingSet 카운터는 프로세스에서 사용하는 메모리의 양을 나타냅니다.The WorkingSet counter shows the amount of memory that is used by a process. 이 숫자가 계속 min server memorymax server memory 서버 옵션에 설정된 메모리의 양보다 작으면 SQL ServerSQL Server 가 메모리를 너무 많이 사용하도록 구성된 것입니다.If this number is consistently below the amount of memory that is set by the min server memory and max server memory server options, SQL ServerSQL Server is configured to use too much memory.

    Buffer Cache Hit Ratio 카운터는 응용 프로그램에 따라 다릅니다.The Buffer Cache Hit Ratio counter is specific to an application. 그러나 90% 이상의 비율이 알맞습니다.However, a rate of 90 percent or higher is desirable. 이 값이 90%보다 크게 유지될 때까지 메모리를 추가하세요.Add more memory until the value is consistently greater than 90 percent. 값이 90%보다 크면 데이터 캐시를 통해 모든 데이터 요청의 90% 이상이 충족된 것입니다.A value greater than 90 percent indicates that more than 90 percent of all requests for data were satisfied from the data cache.

    TotalServerMemory (KB) 카운터가 컴퓨터의 실제 메모리 양과 비교하여 계속 높게 나타나면 메모리를 추가해야 합니다.If the TotalServerMemory (KB) counter is consistently high compared to the amount of physical memory in the computer, it may indicate that more memory is required.

현재 메모리 할당 확인Determining Current Memory Allocation

다음 쿼리는 현재 할당된 메모리에 대한 정보를 반환합니다.The following query returns information about currently allocated memory.

SELECT  
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,  
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,  
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,  
process_physical_memory_low,  
process_virtual_memory_low  
FROM sys.dm_os_process_memory;