none
SQL SERVER MEMORY COMMIT

    질문

  • 안녕하세요?

    현재 windows server 2008r2 에서 MSSQL server 2014 를 운영하고 있습니다.

    HP Gen8 Server 메모리는 16G 에서 운영 중이고 현재 MSSQL 메모리는 4G 로 설정되어 있는 상태입니다.

    작업관리자에 메모리 사용 중인 것은 SQL Server 최대로 4G로 보여지고 나머지 프로세스들은 100mb 대로 가산하여도 8G를 넘어보이지 않습니다.

    헌데 메모리 사용률이 90% 이상을 사용하여 서버가 재부팅 작업을 몇 번 시행하였고

    성능모니터를 통해 데이터 수집기를 통해 시스템 성능 60s 간 수집한 결과 SQL Server 에서 30G 이상의 commit 된 것으로 확인하였습니다.

    1. 메모리 commit 이라는게 메모리 사용 후 미반환에 따른 문제인지 궁금하구요.

    2. 메모리 누수라고 하면 해당 누수를 확인할 수 있는 방법이 무엇이 있을까요?

     - 현재 보안 문제로 폐쇄망에서 해당 서버를 운영 중이고 RAMMAP 등의 프로그램 반영이 보안상 어려운 상태입니다.

    해당 증상이 20여대의 Server 운영 중 5대 정도의 Server에서 확인되고 있으며, 특정 SW 가 의심스러운 상황이나 그 특정 SW 중지가 어려운 환경이라 확인할 수 있는 방법이 있는지 궁금하네요.

    감사합니다.

    2018년 5월 10일 목요일 오전 12:24

모든 응답

  • 안녕하세요?

    1. Committed Bytes는 하기와 같이 물리적인 메모리(16GB/SQL 4GB으로 제한설정) + Pagefile 므로 SQL Server가 30GB이상 Commit했다면 물리적인 메모리 4GB + Pagefile 26GB를 사용한 것으로 보여지며 물리적인 메모리 용량을 4GB로 제한하여 부족한 메모리를 속도가 느린 Pagefile를 사용하는것이 적절한지는 점검이 필요해 보입니다.

    [참고 절]

    Memory, Committed Bytes: This counter is a measure of the demand for virtual memory.

    This shows how many bytes were allocated by processes and to which the operating system has committed a RAM page frame or a page slot in the pagefile (or perhaps both). As Committed Bytes grows greater than the available RAM, paging will increase, and the pagefile size that is being used will also increase. At some point, paging activity starts to significantly affect performance.

    [참고자료]

    RAM, virtual memory, pagefile, and memory management in Windows

    https://support.microsoft.com/en-us/help/2160852/ram-virtual-memory-pagefile-and-memory-management-in-windows

    2. 메모리 누수 및 물리적인 메모리를 많이 사용하고 있는 프로세스는 작업관리자나 성능모니터에서 프로세스별 Working Set을 사용량 및 추이를(계속 늘어나는) 확인해 보시기 바랍니다.

    [참고 절]

    Process, Working Set, _Total: This counter is a measure of the virtual memory in "active" use.

    This counter shows how much RAM is required so that the virtual memory being used for all processes is in RAM. This value is always a multiple of 4,096, which is the page size that is used in Windows. As demand for virtual memory increases beyond the available RAM, the operating system adjusts how much of a process's virtual memory is in its Working Set to optimize available RAM usage and minimize paging.

    Working Set is the term that defines the amount of memory currently in use for a process. Private Working Set is the amount of memory that is dedicated to that process and will not be given up for other programs to use; Shareable Working Set can be surrendered if physical RAM begins to run scarce. Peak Working Set is the highest value recorded for the current instance of this process.

    [참고자료]

    RAM, virtual memory, pagefile, and memory management in Windows

    https://support.microsoft.com/en-us/help/2160852/ram-virtual-memory-pagefile-and-memory-management-in-windows

    Tip:             Make Sense of Memory Management and Key Memory Measurements

    https://technet.microsoft.com/en-us/library/ff382715.aspx?f=255&MSPPError=-2147217396

    3. 메모리 누수관련 분석방법은 하기 자료를 참고하시기 바랍니다.

    Finding a Memory Leak

    https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/finding-a-memory-leak

    감사합니다.

    2018년 5월 15일 화요일 오전 9:14
    중재자