64 비트 버전의 SQL Server 버퍼 풀 메모리 페이지 수를 줄이고 방법

기술 자료 번역 기술 자료 번역
기술 자료: 918483 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

Microsoft SQL Server 현재 로드 및 시스템에 대 한 작업의 메모리 요구 사항에 따라 동적 메모리 관리를 수행 합니다. SQL Server Windows Server 2003 또는 Windows XP 또는 최신 버전의 시스템, QueryMemoryResourceNotification Windows API에서 제공 하는 메모리 알림 메커니즘을 사용할 수 있습니다. Microsoft Windows 2000 Server 기반 시스템에서 SQL Server 정기적으로 시스템의 물리적 메모리 네이티브 Windows API를 사용 하 여 계산 합니다. QueryMemoryResourceNotification Windows API 또는 메모리 계산에서이 정보에 따라, SQL Server 특정 시스템에서 현재 메모리 상황에 응답 합니다. 이 다음과 같은 이점을 제공합니다.
  • 시스템이는 SQL Server 프로세스의 작업 집합 아웃 페이지 되지 않습니다.
  • 필요한 데이터베이스 페이지는 실제 I/O 요구를 줄이는 메모리에서 사용할 수 있습니다.
자세한 내용은 "동적 메모리 관리" 항목과 SQL Server 온라인 설명서에서 "서버 메모리 옵션" 항목을 참조 하십시오.

현상

SQL Server 64 비트 버전에서는 다양 한 문제가 발생할 수 있습니다. 예를 들어, 다음과 같은 문제가 발생할 수 있습니다.
  • SQL Server 성능이 갑자기 저하 됩니다.
  • SQL Server 실행 하는 컴퓨터가 잠시 동안 응답 하지 않습니다.
  • SQL Server 연결 하는 응용 프로그램에 대 한 시간이 초과 되었습니다.
  • 심지어 간단한 명령을 실행 하거나 시스템에서 응용 프로그램을 사용할 때 문제가 발생 합니다.
SQL Server 2005 서비스 팩 2 (SP2) 또는 이후 버전을 설치한 경우이 문제가 발생 하면 SQL Server 오류 로그에 기록 됩니다 다음 오류 메시지 중 하나가:
오류 메시지 1
날짜 시간 spid1s A sql 서버 프로세스 메모리의 중요 한 일부 페이징된. 이 성능이 저하 될 수 있습니다. 재생 시간: 0 초입니다. 작업 집합 (KB): 1086400, 커밋된 (KB): 2160928, 메모리 사용률: 50%.
오류 메시지 2
날짜 시간 spid1s A sql 서버 프로세스 메모리의 중요 한 일부 페이징된. 이 성능이 저하 될 수 있습니다. 기간: 315 초입니다. 작업 집합 (KB): 410156, 커밋된 (KB): 2201296, 메모리 사용률: 18%.
오류 메시지 3
날짜 시간 spid1s A sql 서버 프로세스 메모리의 중요 한 일부 페이징된. 이 성능이 저하 될 수 있습니다. 기간: 646 초입니다. 작업 집합 (KB): 901904, 커밋된 (KB): 2215752, 메모리 사용률: 40%.

Microsoft SQL Server 지원 팀이 추가 오류 메시지나 경고를 Windows 이벤트 로그 나 SQL Server 오류 로그에 기록 됩니다 또한 관찰 됩니다. 이러한 메시지는 다음과 같습니다.
2009-05-05 15:43:56.01 Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.

2009-05-05 12:54:52.18 Server      * *******************************************************************************
2009-05-05 12:54:52.18 Server      * BEGIN STACK DUMP:
2009-05-05 12:54:52.18 Server      *   05/05/08 12:54:52 spid 0
2009-05-05 12:54:52.18 Server      * Non-yielding Resource Monitor
2009-05-05 12:54:52.18 Server      * *******************************************************************************

2009-06-10 09:13:53.44 Server      * *******************************************************************************
2009-06-10 09:13:53.44 Server      * BEGIN STACK DUMP:
2009-06-10 09:13:53.44 Server      *   06/10/09 09:13:53 spid 0
2009-06-10 09:13:53.44 Server      * Non-yielding IOCP Listener
2009-06-10 09:13:53.44 Server      * *******************************************************************************

2009-06-10 09:13:55.85 spid2s      LazyWriter: warning, no free buffers found.

2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.
2009-07-15 13:27:45.35 spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.

2009-07-15 13:37:51.42 Logon       Error: 17189, Severity: 16, State: 1.
2009-07-15 13:37:51.42 Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]

Event Type:	Error
Event Source:	SQLBrowser
Event ID:	8
Description: The SQLBrowser service was unable to process a client request. 
이러한 추가 오류 메시지나 경고 함께 "sql 서버 프로세스 메모리의 중요 한 일부 페이징된" 오류가 나타날 메시지. 몇 가지 경우에 이러한 추가 오류 메시지나 경고 오류 메시지와 함께 표시 되지 않았습니다.

이러한 오류 메시지 또는 경고를 발생 하면 유일한 원인이 아니라 발생할 수 있지만이 문서에서 설명 하는 집합 페이징 작업은 SQL Server 고려해 야 합니다. 이러한 추가 오류 메시지나 경고 다양 한 다른 조건 또는 원인 때문에 기록 될 수 있습니다.

원인

Windows 운영 체제 페이지 SQL Server 프로세스의 작업 집합 out이 문제가 발생 합니다.

SQL Server 프로세스의 작업 집합 50%에 도달할 때 이러한 오류 메시지가 기록 되는 SQL Server 프로세스에 커밋된 메모리의 약. 이러한 오류 메시지는 SQL Server 성능이 크게 Windows 운영 시스템 페이지 SQL Server 프로세스의 작업 집합 아웃 때문에 대/소문자를 확인 하려면 사용할 수 있습니다. 또한 이러한 오류 메시지는 처음 30 분 동안 5 분 마다 기록 됩니다. 처음 30 분 후 다음 오류 메시지 중 빈도 빈도 1 일 최대 도달할 때까지 두 배가 됩니다.

이 문제가 발생 하면 동시에 시스템의 다른 응용 프로그램의 작업 집합 아웃 페이지도 떨어질 수 있습니다.
자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://blogs.msdn.com/psssql/archive/2007/05/31/the-sql-server-working-set-message.aspx
또한 SQL Server 인스턴스를이 오류 메시지가 나타날 수 있습니다에 알려진된 문제가 있습니다. 오류 메시지는 SQL Server 시작 프로세스 동안 SQL Server 오류 로그에 기록 됩니다. 오류 메시지 false 경고 수 있습니다. 따라서 작업 집합 트리밍 실제로 발생 했음을 알 수 수가 있습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://blogs.msdn.com/psssql/archive/2009/05/12/sql-server-reports-working-set-trim-warning-message-during-early-startup-phase.aspx

해결 과정

이 문제를 해결 하려고 하기 전에이 문제를 해결 하려면 "이이 문제를 해결 하는 방법" 절의 단계를 수행 합니다.

이 문제가 계속 발생 하면, 실제 메모리에서 버퍼 풀에 할당 된 메모리를 잠가 Windows 운영 체제 페이징 아웃 버퍼 풀 메모리 SQL Server 프로세스를 방지할 수 있습니다. 메모리의 페이지 잠그기 사용자 권한을 SQL Server 서비스 시작 계정으로 사용 되는 사용자 계정에 할당 하 여 메모리를 잠글.

참고 64 비트 버전의 SQL Server SQL Server Enterprise Edition 에서만 사용할 수 메모리의 페이지 잠그기 사용자 권한이. SQL Server 2005 [RTM, SP1, SP2, SP3] 및 [RTM 및 SP1] SQL Server 2008에 해당 됩니다. SQL Server 2008 SP1 누적 업데이트 2 및 SQL Server 2005 SP3 누적 업데이트 4는 메모리의 페이지 잠그기 사용자 권한을 사용 하 여 SQL Server 표준 버전에 대 한 지원을 소개 합니다. 64 비트 시스템에서 잠긴된 된 페이지 지원에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
970070 SQL Server 2005 표준 버전 64 비트 시스템에서를 SQL Server 2008 표준 에디션 64 비트 시스템에서 잠긴 된 페이지 지원
메모리의 페이지 잠그기 사용자 권한을 할당 하려면 다음과이 같이 하십시오.
  1. 시작, 실행을 형식 gpedit.msc를 누른 다음 확인을 클릭 합니다.

    참고그룹 정책 대화 상자가 나타납니다.
  2. ComputerConfiguration확장 하 고 Windows 설정을 확장 합니다.
  3. 보안 설정확장 한 다음로컬 정책을 확장 합니다.
  4. 사용자 권한 할당클릭 한 다음 페이지 inmemory 잠금을두 번 클릭 합니다.
  5. 로컬 보안 정책 설정대화 상자에서 사용자 또는 그룹 추가클릭 합니다.
  6. 사용자 또는 그룹 선택 대화 상자에서 Sqlservr.exe 파일을 실행할 수 있는 권한을 가진 계정을 추가 하 고확인을 클릭 합니다.
  7. 그룹 정책 대화 상자를 닫습니다.
  8. SQL Server 서비스를 다시 시작 합니다.
할당할 메모리의 페이지 잠그기 사용자 권한이 있으며 SQL Server 서비스를 다시 시작, Windows 운영 체제가 더 이상 페이지 아웃 버퍼 풀 메모리 SQL Server 내에서 처리. 그러나 Windows 운영 체제 nonbuffer 풀 메모리 SQL Server 프로세스 내에서 페이지도 있습니다.

사용자 권한을 시작할 때 SQL Server 오류 로그에 다음과 같은 메시지가 작성 된 하 여 SQL Server 인스턴스에서 사용 됩니다 유효성을 검사할 수 있습니다.
버퍼 풀의 잠긴된 페이지를 사용 하 여
이 메시지가 오류 로그에이 메시지에 대 한 자세한 내용은 64 비트 버전의 SQL Server.For에만 적용, 다음 Microsoft 웹 사이트를 방문 하십시오.
http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-assign-the-lock-privilege-for-local-system.aspx
Windows 운영 체제 페이지 nonbuffer 풀 메모리 부족으로 성능 문제가 여전히 발생할 수 있습니다. 그러나 "현상" 절에 나와 있는 오류 메시지가 SQL Server 오류 로그에 로깅되지 않습니다. SQL Server 프로세스의 작업 집합 50%에 일반적으로 도달 하지 않습니다 때문에이 문제가 발생 또는 커밋된 메모리를 적게 합니다.

추가 정보

이 문제를 해결 하는 방법

이 문제를 해결 하려면 다음과이 같이 하십시오.
  1. Windows 운영 체제에 SQL Server 프로세스의 작업 집합 아웃 페이지 발생 하는 알려진된 문제를 해결 하려면 다음 Microsoft 기술 자료 문서에 설명 되어 있는 핫픽스를 적용 합니다.

    참고 핫픽스는 누적 됩니다. 이후 버전의 핫픽스 이전 버전의 핫픽스가 포함 되어 있습니다.
    • Microsoft는 작업 집합 잘라내야 할 SQL Server 64 비트 버전 발생할 수 있는 문제를 발견 했습니다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭해 주십시오.
      905865 터미널 서비스를 사용 하 여 로그온 하거나 Windows Server 2003을 실행 하는 컴퓨터에서 로그 오프 하려면 콘솔 세션에서 모든 프로세스의 작업 집합 크기가 줄어들 수 있다
    • 버퍼링 된 I/O와 같은 파일 복사 작업을 수행 하는 응용 프로그램이 있는 경우 커밋되지 않은 버퍼에 캐시 될 경우 Windows Server 2003을 실행 하는 컴퓨터 너무 적극적인 수 있습니다. 이 문제는 작업 집합 잘라내야 할 SQL Server 될 수 있습니다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭해 주십시오.
      920739 Windows Server 2003 S 또는 Windows Server 2003 S 약 500MB 보다 큰 파일을 복사할 때 전체적인 시스템 성능 저하를 발생할 수 있습니다.
    • 시스템 일부 고급 TCP 기능을 사용 하는 SQL Server 작업 집합 줄어들 수 있다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭해 주십시오.
      942861 응용 프로그램이 Windows Server 2003을 실행 하는 서버에서 SQL Server 연결 하면 오류 메시지가: "일반 네트워크 오류", "통신 연결 오류" 또는 "수송 수준 오류"
    • Windows Server 2003을 실행 하는 다중 프로세서 컴퓨터에서 시스템 프로세스의 사용 가능한 시스템 메모리 대부분을 사용할 수 있습니다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭해 주십시오.
      942486 시스템 프로세스를 Windows Server 2003을 실행 하는 다중 프로세서 컴퓨터에서 사용 가능한 시스템 메모리 대부분을 사용할 수 있습니다.
  2. 장치 드라이버를 사용 하는 경우는 MmAllocateContiguousMemory 함수에서 값을 설정 하는 경우는 HighestAcceptableAddress 매개 변수 보다 작거나 4 gb (기가바이트)를, Windows 운영 체제 64 비트 SQL Server 프로세스의 작업 집합 아웃 페이지 수 있습니다. 이 문제를 해결 하려면 드라이버 업데이트를 장치 드라이버 공급 업체에 문의 합니다. 문제가 발생 한 드라이버 목록을 보려면 "다른 공급 업체" 절의 Microsoft 기술 자료의 다음 문서를 참조:
    2121098 권장 운영 체제 업데이트 및 SQL Server 설치를 위한 드라이버
  3. 이 핫픽스를 적용 한 후 이러한 문제가 여전히 발생 하는 경우 프로세스 당 트리밍 작업 수가 제한 Windows 핫픽스를 적용 합니다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭하십시오.
    938486 Windows Server 2003 기반 컴퓨터가 많은 양의 메모리 요청 하는 결정 되지 않은 모듈에 의해 발생 하는 메모리 관리자 트리밍 작업으로 인해 응답 하지
    956341 Windows Server 2003 기반 컴퓨터는 대용량 메모리 할당 요청 때문에 응답 하지
    장치 드라이버가 메모리를 할당할 때 Windows 운영 체제 다른 응용 프로그램의 작업 집합 아웃 페이지 수 있습니다. 이 Windows 핫픽스 이벤트 추적을 사용 하 여 문제가 발생 하는 장치 드라이버를 찾을 수 있습니다. 작업 집합 트리밍 문제를 일으키는 특정 드라이버에 대 한 자세한 내용은 MSDN 문서를 참조 하십시오 "연속 메모리를 할당 하는 드라이버를 확인 합니다.."
  4. 응용 프로그램 시스템 캐시가 너무, 많이 사용할 수 있습니다 및 대형 시스템 캐시 증가 될 수 있습니다. 시스템 캐시의 증가 응답할 시스템 페이지 SQL Server 프로세스 또는 다른 응용 프로그램의 작업 집합 out. 이 문제가 발생 하면 응용 프로그램에서 일부 메모리 관리 기능을 사용할 수 있습니다. 이러한 기능은 파일 I/O 작업의 응용 프로그램에서 사용할 수 있는 시스템 캐시 공간을 제어 합니다. 예를 들어, 사용할 수 있는 SetSystemFileCacheSize 함수 및 GetSystemFileCacheSize 함수는 파일 I/O 작업에 사용할 수 있는 시스템 캐시 공간을 제어할 수 있습니다.

    Memory 성능 개체를 시스템 캐시 작업 집합 메모리를 너무 많이 사용 하는지 확인 하려면이 개체의 다양 한 카운터의 값을 볼 수 사용할 수 있습니다. 예를 들어, 캐시 바이트 및 시스템 캐시 상주 바이트 카운터를 볼 수 있습니다. 이 항목에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
    http://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx

    http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx

    http://support.microsoft.com/default.aspx?scid=kb;EN-US; 976618
    다운로드 하 고 "Microsoft Windows 동적 캐시 서비스 배포" 시스템 캐시에 의해 사용 되는 메모리를 제어할 수 있습니다.
  5. SQL Server 함께 SAP R/3을 실행 중인 경우 페이징 문제가 발생할 수 있습니다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭해 주십시오.
    931308 SAP R/3 프로그램이 Windows Server 2003 기반 컴퓨터에서 실행할 때 하드 디스크 페이징을 증가 발생할 수 있습니다.
  6. Windows Server 2008에서 SQL Server 실행 하는 경우 다른 운영 체제 구성 요소에서 집합 자르기 또는 불필요 한 과다 한 메모리 소비 작업을 일으킬 수 있는 알려진된 문제에 대 한 수정 프로그램을 적용 해야 합니다. 자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭하십시오.

    971442 네트워크를 통해 Windows Server 2008 또는 Windows Vista를 실행 하는 서버에서 파일을 복사 하려고 할 때 서버의 시스템 성능이 저하 심각 하 게 되 면

    974609 임의로 Windows Server 2008을 실행 하는 컴퓨터 큰 응용 프로그램을 실행할 때 응답 하지 않는다

    971714 보고서 생성 프로세스는 Windows Server 2008 기반 도메인 컨트롤러에 대 한 보고서를 생성 하려면 Active Directory 진단 템플릿으로 Perfmon.exe를 실행 하면 응답 하지 않을 수합니다 있습니다.
  7. Windows 역할 2008 r 2에서 SQL Server 실행 하는 경우 작업 집합 자르기에 발생할 수 있는 알려진된 문제에 대 한 수정 프로그램을 적용 해야 합니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
    979149 큰 응용 프로그램을 실행할 때 Windows 7 또는 Windows Server 2008 r 2를 실행 하는 컴퓨터 응답 하지

    2155311 실행 중인 Windows Server 2008 R2 또는 Windows 7 경우 메모리가 첫 4GB의 메모리 내에 있는 스레드 요청 많은 NUMA 기반 프로세서를 가진 컴퓨터에서 성능 저하 발생

    2468345 간헐적으로 맙니다 컴퓨터나 Windows Server 2008 r 2에서 Storport 드라이버를 사용할 때 응답 하지 않는다

64 비트 버전의 SQL Server 사용 되는 메모리를 확인 하는 방법

64 비트 버전의 SQL Server 사용 되는 메모리 페이지를 보려면 성능 모니터를 사용할 수 있습니다. 이렇게 하려면 다음 성능 카운터를 모니터링.
성능 개체: 메모리
페이지/초 카운터:
이 카운터를 사용 하 여 메모리 페이지를 확인 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
889654 64 비트 버전의 Windows Server 2003 또는 Windows XP의 적절 한 페이징 파일 크기를 확인 하는 방법
또한 다음 성능 카운터를 모니터링 하 여 64 비트 버전의 SQL Server 페이징 효과 측정할 수 있습니다.
성능 개체: 프로세스
카운터: 전용 바이트
인스턴스: sqlservr

성능 개체: 프로세스
카운터: 작업 집합
인스턴스: sqlservr
전용 바이트 카운터가 현재 커밋된 메모리를 측정 합니다. Working Set 카운터는 프로세스에서 현재 사용 중인 실제 메모리를 측정 합니다. 64 비트 버전의 SQL Server 다음 성능 카운터를 사용 하 여 버퍼 풀에 할당 하는 메모리 노출 하.
성능 개체: SQL Server: 메모리 관리자
카운터: 총 서버 Memory(KB)
참고 64 비트 버전의 SQL Server 인스턴스가 명명된 된 인스턴스의 경우 성능 개체의 이름은 다음과 같습니다.
MSSQL $인스턴스 이름: 메모리 관리자
작업 집합 카운터 값 서버 Memory(KB) 총 카운터의 값 보다 작은 경우, 버퍼 풀의 일부인 일부 메모리 작업 집합은 SQL Server 잘린.

할당 한 후 메모리의 페이지 잠그기 사용자 권한이 있으며 SQL Server 서비스를 SQL Server 프로세스의 버퍼 풀 여전히 메모리 리소스 알림 이벤트에 응답 하는 다시 수 동적으로 증가 하거나 감소 이러한 이벤트에 응답 합니다. 그러나 다음 성능 카운터를 메모리에 잠겨 버퍼 풀의 메모리 할당을 볼 수 없습니다.
  • 전용 바이트 카운터 및 작업 집합 성능 모니터 카운터
  • 작업 관리자에서 프로세스 탭에서 메모리 사용
이러한 페이지 잠겨 있는 후 해당 할당 버퍼 풀을 사용 하지 않는 경우 이러한 성능 카운터 SQL Server 프로세스 내의 메모리 할당을 나타냅니다. SQL Server: 메모리 관리자 성능 개체의 카운터 서버 Memory(KB) 총 버퍼 풀에 할당 되는 메모리를 정확 하 게 나타냅니다.

"메모리의 페이지 잠그기" 사용자는 64 비트 버전의 SQL Server 인스턴스에 대 한 권한을 할당 하기 전에 중요 한 고려 사항

확인 해야 고려해 메모리의 페이지 잠그기 사용자 지정 하기 전에 오른쪽. 잘못 구성 된 시스템에서이 사용자를 할당 하면 시스템 불안정 해 지거나 전체 시스템의 성능이 저하 될 수 있습니다. 또한 이벤트 ID 333 이벤트 로그에 기록 될 수 있습니다.

이러한 문제에 대 한 고객 지원 서비스 (CSS)에 문의 CSS 엔지니어가 사용자 권한을 SQL Server 서비스 시작 계정으로 사용 되는 사용자 계정에 대 한 해지를 요청할 수도 있습니다. 이 단계는 CSS 엔지니어는 필요한 구성 시스템에서 실행 중인 다른 응용 프로그램 및 SQL Server 대 한 다양 한 옵션에 사용할 수 있는 중요 한 성능 데이터를 수집 해야 합니다. CSS 엔지니어는 성능 데이터를 수집 하는 후 SQL Server 서비스 시작 계정 오른쪽에서 메모리의 페이지 잠그기 사용자를 지정할 수 있습니다.

메모리의 페이지 잠그기 사용자 권한을 할당 하기 전에 다양 한 응용 프로그램 및 시스템에 설치 된 서비스의 메모리 요구 사항을 확인 하려면 성능 모니터 로그를 캡처할 수 있는지 확인 하십시오. 이러한 응용 프로그램이 SQL Server 포함. 필요한 메모리를 확인 하려면 다음과 같은 초기 계획 정보를 수집 합니다.
  • 최대 서버 메모리 옵션 및 최소 서버 메모리 옵션을 올바르게 설정 하 고 있는지 확인 하십시오. 이러한 옵션 SQL Server 프로세스의 버퍼 풀의 메모리 요구만 반영합니다. 이러한 옵션 SQL Server 프로세스 내의 다른 구성 요소에 할당 되는 메모리를 포함 하지 않습니다. 이러한 구성 요소는 다음과 같습니다.
    • SQL Server 작업자 스레드
    • 여러 페이지로 구성 된 SQL Server의 메모리 관리자 할당자
    • 다양 한 Dll과 SQL Server 프로세스는 SQL Server 프로세스의 주소 공간에 로드 하는 구성 요소
    • 백업 및 복원 작업
  • 구성 요소 Dll 및 다양 한 OLE DB 공급자, 확장된 저장된 프로시저, sp_OACreate 저장 프로시저, 연결 된 서버 및 SQL Server CLR을 사용 하는 Microsoft COM 개체를 포함 합니다. 이러한 구성 요소에 할당 된 메모리는 nonbuffer 풀 영역을 SQL Server 프로세스의 주소 공간에 속하는. 이상적으로 SQL Server 프로세스 전체에서 사용할 수 있는 메모리의 최대 크기를 확인 하려면 사용 하 여 SQL Server 프로세스가 원하는 총 메모리 버퍼 풀을 사용 하지 않는 구성 요소에 대해 할당 되는 메모리를 빼야 합니다. 그런 다음 나머지 값 최대 서버 메모리 옵션을 설정 하려면 사용할 수 있습니다. 최대 서버 메모리 옵션 및 최소 서버 메모리 옵션을 설정 하기 전에 SQL Server 온라인 설명서의 "메모리 옵션을 수동으로 설정" 항목 신중 하 게 검토 해야 합니다.
  • Windows 운영 체제 구성 요소 및 기타 응용 프로그램의 메모리 요구 사항을 확인 합니다. 응용 프로그램은 다른 SQL Server 구성 요소 예를 들어, SQL Server 에이전트, 복제 에이전트가 SQL Server, SQL Server Reporting Services, SQL Server Analysis Services, SQL Server 통합 서비스 및 SQL Server 전체 텍스트 검색 포함 될 수 있습니다. 백업 작업 및 파일 복사 작업을 수행 하는 응용 프로그램은 메모리를 많이 사용할 수 있습니다. 파일 IO 생성할 대량 복사 및 스냅숏 에이전트 작업을 고려해 야 합니다. 최대 서버 메모리 옵션 및 최소 서버 메모리 옵션의 값을 확인할 때 이러한 모든 응용이 프로그램의 메모리 요구를 고려해 야 합니다. 전용 바이트 카운터 및 작업 집합 카운터 모든 프로세스에 대 한 프로세스 개체 아래의 특정 프로세스의 메모리 요구 사항을 확인 하려면 사용할 수 있습니다.
  • 메모리의 페이지 잠그기 사용자 권한이 기본적으로 기본 제공 로컬 시스템 계정에 할당 된 이미 했습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
    http://blogs.msdn.com/psssql/archive/2007/10/18/do-i-have-to-assign-the-lock-privilege-for-local-system.aspx
  • 를 사용 하면 Windows 사용자 계정을 전역적으로 도메인에 있는 모든 SQL Server 프로세스에 대 한 그룹 정책 구성을 사용 하 여 할당 된 사용자 권한을 결정 합니다. 32 비트 SQL Server 프로세스 시작 계정으로이 계정을 사용할 수 있습니다. 그러나이 계정 주소 창 작업 확장 (AWE) 기능을 사용 하려면 메모리의 페이지 잠그기 사용자 권한이 필요 합니다. 자세한 내용은 SQL Server 온라인 설명서의 "SQL Server 메모리의 최대 양을 제공" 항목을 참조 하십시오.
  • 최대 서버 메모리 옵션 및 최소 서버 메모리 옵션을 여러 SQL Server 인스턴스를 구성 하기 전에 SQL Server 각 인스턴스에 대 한 nonbuffer 풀의 메모리 요구 사항을 고려해 야 합니다. SQL Server 각 인스턴스에 대해 이러한 옵션을 구성 합니다.
원칙적으로 최고 로드이 초기 계획 정보를 수집합니다. 따라서 다양 한 응용 프로그램 및 구성 요소의 최대 로드를 지원 하기 위해 메모리 요구 사항을 확인할 수 있습니다. 메모리 요구 사항을 한 시스템에서 다른 시스템으로 활동과 시스템에서 실행 되는 응용 프로그램에 따라 다양 합니다.

SQL Server 링 버퍼에서 정보가 페이징 발생할 때 메모리 조건을 확인 하는 데 사용 하는 방법

SQL Server 링 버퍼에서 정보가 페이징 발생 하면 서버의 메모리 조건을 확인 하는 데 사용할 수 있습니다. 이 정보를 얻으려면 다음 스크립트와 같은 스크립트를 사용할 수 있습니다.
SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
DATEADD (ms, -1 * (sys.ms_ticks - a.[Record Time]), GETDATE()) AS Notification_time,  
 a.* , sys.ms_ticks AS [Current Time]
 FROM 
 (SELECT x.value('(//Record/ResourceMonitor/Notification)[1]', 'varchar(30)') AS [Notification_type], 
 x.value('(//Record/MemoryRecord/MemoryUtilization)[1]', 'bigint') AS [MemoryUtilization %], 
 x.value('(//Record/MemoryRecord/TotalPhysicalMemory)[1]', 'bigint') AS [TotalPhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/AvailablePhysicalMemory)[1]', 'bigint') AS [AvailablePhysicalMemory_KB], 
 x.value('(//Record/MemoryRecord/TotalPageFile)[1]', 'bigint') AS [TotalPageFile_KB], 
 x.value('(//Record/MemoryRecord/AvailablePageFile)[1]', 'bigint') AS [AvailablePageFile_KB], 
 x.value('(//Record/MemoryRecord/TotalVirtualAddressSpace)[1]', 'bigint') AS [TotalVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryRecord/AvailableVirtualAddressSpace)[1]', 'bigint') AS [AvailableVirtualAddressSpace_KB], 
 x.value('(//Record/MemoryNode/@id)[1]', 'bigint') AS [Node Id], 
 x.value('(//Record/MemoryNode/ReservedMemory)[1]', 'bigint') AS [SQL_ReservedMemory_KB], 
 x.value('(//Record/MemoryNode/CommittedMemory)[1]', 'bigint') AS [SQL_CommittedMemory_KB], 
 x.value('(//Record/@id)[1]', 'bigint') AS [Record Id], 
 x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type], 
 x.value('(//Record/ResourceMonitor/Indicators)[1]', 'bigint') AS [Indicators], 
 x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
 FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers 
 WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR') AS R(x)) a 
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

참고 이 쿼리는 SQL Server 2005와 SQL Server 2008에 대 한 유효 합니다.

시스템 메모리 부족 조건이 발생 하는지 이해 하는 동적 관리 뷰 sys.dm_os_process_memory에서 제공 되는 정보를 쿼리할 수 있습니다. 자세한 내용은 다음 MSDN 웹 사이트에서 SQL Server 2008 온라인 설명서 참조를 참조 하십시오.
http://msdn.microsoft.com/en-us/library/bb510747.aspx
SQL Server 2008 R2 최상의 연습 분석기 (SQL Server 2008 R2 BPA) 작업 집합 자르기 SQL Server 프로세스에서 발생할 수 있는 상황을 감지 하는 여러 규칙을 제공 합니다. SQL Server 2008 R2 BPA는 SQL Server 2008 및 SQL Server 2008 r 2를 지원합니다.

표 축소표 확대
규칙 소프트웨어규칙 제목규칙 설명해당 규칙이 평가되는 제품 버전
SQL Server 2008 R2 최상의 연습 분석기 (SQL Server 2008 R2 BPA)
SQL Server 메모리 설정이 올바르지 않습니다.


BPA 도구를 실행 하 고 "데이터베이스 엔진-SQL Server 메모리 설정이 잘못" 경고 메시지를 받은 경우 SQL Server이 인스턴스에 대 한 최대 서버 메모리 설정 확인 "전에 중요 한 고려 대는 64 비트 버전의 SQL Server 인스턴스의 '메모리에서 페이지 잠금' 사용자" 지정이 문서의 섹션의 권장 사항을 따라를 해야 합니다.SQL Server 2008
SQL Server 2008 R2


SQL Server 2008 R2 최상의 연습 분석기 (SQL Server 2008 R2 BPA)운영 체제 파일과 드라이버 업데이트 작업 집합 자르기에 대 한 요구BPA 도구를 실행 하 고 오류가 발생할 경우 "운영 체제 파일 및 드라이버 데이터베이스 엔진 업데이트 해야 작업 집합 자르기에 대 한"이 문서의 "해결 방법" 절에서 설명한 모든 수정 프로그램을 검토 하 고 적용 해야 합니다.
SQL Server 2008
SQL Server 2008 R2

SQL Server 2008 R2 최상의 연습 분석기 (SQL Server 2008 R2 BPA)SQL Server 메모리의 상당한 부분 페이징된
BPA 도구를 실행 하 고 "데이터베이스 엔진-SQL Server 메모리 페이징된의 중요 한 부분" 오류가 발생할 경우이 문서의 "해결 방법" 및 "해결 방법" 절을 검토 하 고 적절 한 조치를 취할 해야 합니다.
SQL Server 2008
SQL Server 2008 R2


Windows Server 2008 R2 및 Windows Server 2008의에서 향상 된 기능


Windows Server 2008 및 Windows Server 2008 R2 연속 메모리 할당 메커니즘을 향상 됩니다. 이 개선 효과 줄일 정도 응용 프로그램의 작업 집합 out 페이징 도착 새 메모리를 요청 하면 Windows Server 2008 R2 및 Windows Server 2008에서는 있습니다.

다음은 Microsoft 백서 "발전의 메모리 관리에서 Windows"에서 향상 된 기능에 대 한 설명입니다.

Windows Server 2008에서 물리적으로 연속 메모리 할당 크게 향상 됩니다. 연속 메모리 할당 요청은 바꾸기 때문에 메모리 관리자는 이제 동적으로 페이지, 일반적으로 작업 집합 자르기 또는 I/O 작업을 수행 하지 않고 성공 하는 것입니다. 또한, 더 많은 유형의 페이지-커널 스택 등 파일 시스템 메타 데이터 페이지 등-후보 교체 됩니다. 따라서 인접 한 메모리는 언제 든 지 일반적으로 사용할 수 있습니다. 또한 이러한 할당을 얻으려면 비용이 크게 줄어듭니다.
"발전의 메모리 관리에서 Windows" 백서를 보려면 다음 Microsoft 웹 사이트를 방문 하십시오.
http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/MemMgt.docx
자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.
http://blogs.msdn.com/psssql/archive/2008/03/03/sql-server-working-set-trim-problems-consider.aspx
http://support.microsoft.com/kb/2001745
참고 Windows Server 2008 기반 컴퓨터에서 SQL Server 서비스 팩 2 (SP2) 또는 나중에 SQL Server 서비스 팩을 설치 해야 합니다.

이 문서에서 설명하는 제3사 제품군 중 일부는 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 명시적, 혹은 묵시적으로 이 제품군의 성능이나 신뢰성에 대하여 보증하지 않습니다.

속성

기술 자료: 918483 - 마지막 검토: 2014년 6월 20일 금요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
키워드:?
kbsqlsetup kbsql2005engine kbexpertiseadvanced kbinfo kbmt KB918483 KbMtko
기계 번역된 문서
이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.
이 문서의 영문 버전 보기:918483

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com