SQL Server 최대 메모리, 페이지 파일, 최대 병렬 처리


15

우주의 DBA 마스터가 대답 할 수있는 세 가지 질문은 다음과 같습니다.


  1. SQL Server의 최대 메모리를 설정하는 것이 가장 좋습니다. 따라서 RAM이 44GB 인 서버에 SQL Server가 설치되어 있으면 SQL Server 최대 메모리를 약 37GB로 설정해야합니다.

그러나 SQL Analysis Service 및 SQL Reporting Services가 SQL Server와 동일한 서버에 설치되어 있으면 어떻게 설정해야합니까? 그런 다음 Analysis에서 다른 22GB RAM을 사용할 수 있도록 SQL Server의 최대 메모리를 22GB RAM으로 설정하는 것이 더 낫습니까?


  1. RAM이 44GB 인 SQL Server를 실행하는 서버에서 페이지 파일 크기를 설정하는 가장 좋은 방법은 무엇입니까? 나는 Brent Ozar ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/ )에서 다음을 읽었습니다 .

SQL Server에는 거대한 페이지 파일이 필요하지 않습니다. 서버에 다른 응용 프로그램을 설치하는 경우 (권장하지 않음-SQL Server를 분리해야 함) 더 큰 페이지 파일이 필요할 수 있습니다. SQL Server가 박스에서 실행되는 유일한 주요 서비스 인 경우 일반적으로 시스템 드라이브에 2GB 크기의 페이지 파일을 만듭니다.

MS는 페이지 파일 시스템을 Remus의 조언과 일치하는 RAM의 1.5 배로 설정해야한다고 말합니다 (-> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -큰 램 / ).

따라서 RAM이 44GB 인 서버의 경우 SQL Analysis Service 및 SQL Reporting Services 옆에 SQL Server가 설치되어 있습니다. 페이지 파일 크기를 설정해야합니까?


  1. SharePoint 팜의 일부이고 SharePoint가 데이터베이스를 저장하는 SharePoint의 경우 최대 병렬 처리 수준을 1로 설정해야합니다. 이제 SharePoint 팜의 일부가 아닌 서버 (sql2라고 함)를 만들었습니다. 서버에는 SQL Server, SQL Analysis 및 Reporting이 설치되어 있습니다. SharePoint는 데이터베이스를이 서버에 저장하지 않지만 SharePoint에서 읽고 쓰는 보고서 및 분석 데이터베이스 / 큐브를 만들었습니다.

브렌트 오자르의 말 :

경험 법칙 : 하드웨어의 단일 NUMA 노드 (프로세서) 소켓에있는 물리적 코어 수로 설정하십시오.

4 개의 VCPU가있을 때 최대 병렬 처리 수준을 위해이 SQL Server 인스턴스에서 무엇을 구성해야합니까?


여러분 만이 나뿐만 아니라 더 많은 SQL 관리자에게 인터 웹의 정글보다 모범 사례에 대한 통찰력을 조금 더 주시기를 바랍니다.

답변:


12

귀하의 3 개 질문 터치 max memory, page file그리고 max dop setting.

최대 메모리


서버가 Analysis 서비스가없는 전용 SQL Server 인 경우 (SSAS가 또 다른 짐승이므로) Glenn의 권장 모범 사례가 좋은 출발점입니다 . 추가 구성 요소는 max memory 구성 방법에 대한 Jonathan의 블로그를 참조하십시오 .

SQL Server 최대 및 최소 메모리 구성 에 대한 답변을 받았습니다 . 서버 인스턴스에서 많은 SSIS 패키지가 실행되고 있는 경우에 유용 합니다.

페이지 파일


C:\디스크 공간이 충분한 드라이브의 드라이브에서 멀리 떨어진 곳에 설치합니다 . Remus and Brent의 권고에 동의합니다. 이어야합니다 PAGE FILE FOR SQL SERVER = 1.5 * RAM. 페이지 파일은 문제 해결을 위해 전체 메모리 덤프 (일반적으로 Microsoft CSS에서 요청)를 받아야하는 상황에 처했을 때 유용합니다.

읽기 윈도우 KB 889654 철저하게 64 비트 버전에서 적절한 페이징 파일 크기를 결정하는 방법벅 우디 여기에 페이지 파일에 대한 대화를 .

MAX DOP 설정


Sharepoint의 maxdop = 1경우 인스턴스 전체를 설정 하는 것이 좋습니다 . 일반적인 SQL Server의 경우 SQL Server에서 MAXDOP를 계산하는 좋은 반복 가능한 방법은 무엇입니까? 나는 당신을 위해 그것을 계산할 스크립트를 작성했습니다.

요지는 아래에 있습니다 ( KB 2806535 도 같은 것을 언급합니다).

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

참고로, 고성능 워크로드가있는 SQL Server 2012 및 SQL Server 2014의 권장 업데이트 및 구성 옵션 을 읽어보십시오.


한 가지 주목할 점은 위에서 언급 한 Buck Woody의 블로그 게시물에서 Remus는 "하루를 절약하는 것은 AWE입니다. AWE를 통해 예약 된 메모리는 페이지 파일 예약이 필요하지 않습니다 (물리적 RAM에 잠겨 있기 때문에 페이지를 예약 할 수 없음") AWE의 사용은 x64에서 자동입니다. " AWE에서 볼 수 있듯이 큰 페이지 파일이 필요하지 않습니다.
Jason Carter

@Kin 당신은 "나는 레무스와 브렌트의 권고에 동의한다"고 말했다. 그러나 브렌트의 설정 가이드 (위의 OP로 인용)와 레무스 기사를 살펴본 후에는 모순됩니다. 그래서 나에게 페이지 파일에 관한 당신의 대답은 보류중인 질문을 남깁니다.
Magier

1
@Magier 나는 문제를 진단하기 위해 전체 메모리 덤프를 해야하는 상황에 있었기 때문에 MS 권장 사항을 따르는 경향이 있습니다. 우리는 Windows 또는 SQL Server인지 알지 못했습니다. 이 경우 MS 권장 사항이 가장 좋습니다. 그러한 상황에 빠지지 않으면 브렌트의 조언도 유효합니다. 나는 안전한 편에있는 경향이있다 PAGE FILE FOR SQL SERVER = 1.5 * RAM. 그 질문에 대답합니까?
Kin Shah

3

따라서 RAM이 44GB 인 서버의 경우 SQL Analysis Service 및 SQL Reporting Services 옆에 SQL Server가 설치되어 있습니다. 페이지 파일 크기를 설정해야합니까?

Kin이 이미 언급 한 것에 추가하면 Perfmon Counters페이지 파일 크기를 계산하는 데 사용 하는 것이 좋습니다 . 또한 페이지 파일 의 Remus 권장 사항은 시스템의 RAM 용량의 1.5 배 여야 한다는 것에 동의 합니다 . 그러나이 권고는 가능한 모든 측면과 시나리오 및 '일반 권고'를 고려하고 있습니다. 구체적인 가치에 더 관심이있는 것 같습니다. 그래서 여기 있습니다

개별 시스템의 페이지 파일 요구는 서버,로드 등의 역할에 따라 달라집니다. 시스템 전체 또는 페이지 파일 단위로 커밋 된 개인 메모리 사용량을 모니터링하는 데 사용할 수있는 성능 카운터가 있습니다. 프로세스의 전용 커밋 메모리가 얼마나 상주하고 페이징 파일에 얼마나 많은 페이지가 페이징되는지를 판별 할 방법이 없습니다.

메모리 : 커밋 된 바이트 : 커밋 된 가상 메모리의 바이트 수입니다. 반드시 페이지 파일 사용을 나타내는 것은 아닙니다. 프로세스가 완전히 비거주자로 만들어진 경우 사용될 페이지 파일 공간의 양을 나타냅니다.

메모리 : 커밋 제한 : 페이징 파일을 확장하지 않고 커밋 할 수있는 가상 메모리의 바이트 수입니다.

페이징 파일 : % 사용 커밋 된 페이징 파일의 백분율

페이징 파일 : 최대 사용량 최대 커밋 된 페이징 파일의 최대 백분율

페이지 파일에 적절한 값을 설정하려면 위의 카운터를 사용하십시오. 이 링크 를 읽고 페이지 파일에 대한 자세한 정보를 얻을 수 있습니다 .

그런 다음 Analysis에서 다른 22GB RAM을 사용할 수 있도록 SQL Server의 최대 메모리를 22GB RAM으로 설정하는 것이 더 낫습니까?

아니요, OS 요구 사항을 놓쳤다 고 생각하지 않습니다. 먼저 SQl Server에 최적의 최대 서버 메모리를 설정해야합니다. 이 SE 스레드 에는 올바른 최대 서버 메모리 값 설정에 대한 자세한 내용이 있습니다. 다시 한번 나는 perfmon 카운터에 무겁고 항상 회신하여 whay가 최적의 가치가 있는지 확인합니다. SSAS에 최적의 값을 설정하려면 이 기사 를 읽고 카운터의 도움을 받으십시오. 한 번이 블로그를 사용하여 SSAS의 메모리 값을 설정했습니다. SSAS에 관심이 많지 않으므로이 기사로만 의견이 제한됩니다.

Sharepoint 인스턴스는 널리 허용되는 매개 변수에 대해 MAXDOP = 1을 유지해야합니다. IIRC의 경우 최대 병렬 처리 수준을 기본값으로 두었을 때 교착 상태가 자주 발생 하면 권장 사항이 널리 채택되었습니다.


3

페이지 파일 크기 참조에 대해 지금까지 제공된 다른 모든 답변은 상대적으로 오래된 기사입니다. 이 Technet 블로그 게시물은 최신 정보이며 (2015 년 10 월) 최신 시스템에서 이상적인 페이지 파일 크기를 계산하는보다 자세한 방법을 제공합니다.

그들은 이전의 경험치 인 1.5 x RAM이 더 이상 적용되지 않는다고 분명히 말합니다.

링크 부패를 피하기 위해 아래 기사의 핵심 내용을 붙여 넣었습니다.

그들은 최소 1 주일 동안 최대 사용량으로 실행되는 서버에서 메트릭을 수집 할 것을 권장합니다. 따라서 프로젝트의 계획 및 구현 단계에서는이를 수행 할 수있는 위치에 있지 않을 수 있으며 나중에 프로젝트에서 시간을 보내야합니다. 그렇게하기 위해.


페이지 파일 크기를 조정할 때 응용 프로그램 메모리 요구와 크래시 덤프 설정을 고려해야합니다.

응용 프로그램에 필요한 메모리 양을 어떻게 알 수 있습니까? 가장 좋은 방법은 기준을 세우는 것입니다.

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

참고 : 장기간 (적어도 1 주일) 동안 정보를 수집하고 서버의 사용량이 최대인지 확인하십시오.

페이지 파일 크기 공식은 다음과 같아야합니다.

(작업량 버스트를 수용하기 위해 커밋 된 바이트의 최대 값 + 추가 20 % 버퍼) -RAM 크기

예를 들어, 서버에 24GB RAM이 있고 최대 커밋 된 바이트가 26GB 인 경우 권장 페이지 파일은 다음과 같습니다. (26 * 1.2) -24) = 7.2GB

두 번째 요소는 무엇입니까 : 시스템 충돌시 정보를 기록하는 데 필요한 크기는?

메모리 덤프의 크기는 다음 유형에 따라 결정됩니다.

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

대부분의 경우 커널 메모리 덤프는 근본 원인 분석에 충분합니다. 예를 들어 사용자 모드에서 발생한 상황을 확인하려는 경우와 같이 특정 경우에만 전체 메모리 덤프가 필요합니다.

내 경험상 커널 메모리 덤프의 크기는 일반적으로 다음과 같습니다.

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

그러나이 수치는 Microsoft 공식 권장 사항이 아니며 서버마다 다를 수 있으므로 신청하기 전에 항상 테스트하십시오.


2

내가 인용 한 사람들 중 하나이기 때문에 대답하기.

1. Analysis Services를 실행할 때 max memory를 무엇으로 설정해야합니까?

SSAS는 SQL Server에 설치되는 다른 앱과 똑같기 때문에 지침을 찾을 수 없습니다. 사용하려는 메모리의 양을 모릅니다. SSAS / SSIS / SSRS를 타사 응용 프로그램으로 취급하면 SQL Server 상자에 "무료"로 포함됩니다. 완전히 다른 CPU, 메모리 및 스토리지 요구 사항이 있습니다.

2. 페이지 파일 크기를 무엇으로 설정해야합니까?

내 권장 사항은 Windows가 미니 덤프를 수행 할 수 있도록하는 것입니다. Microsoft 지원에 문의해야하는 문제가 발생하면 미니 덤프로 시작할 수 있습니다. 문제가 다시 발생하고 미니 덤프 (또는 오류 로그와 같은 다른 정보 소스)에서 문제를 파악할 수 없으면 1.5 배 RAM 크기로 이동하라는 메시지가 표시 될 수 있습니다.

Microsoft의 1.5x RAM 권장 사항은 시스템 충돌시 Windows가 전체 메모리 덤프를 수행 할 수 있도록하는 것입니다.

요즘 64-128-256GB RAM을 가진 서버의 경우 일반적으로 충돌 중에 메모리의 전체 내용을 기록하기 위해 Windows를 일시 중지하는 것은 좋지 않습니다. 오히려 SQL Server를 백업 및 실행하고 전체 덤프가 아닌 미니 덤프 내용을 처리해야합니다. 나중에 전체 덤프를 저장하십시오. 일반적으로 64 + GB 덤프 파일을 Microsoft에 업로드하지 않고도 전체 경력을 쌓을 수 있습니다. (행운을 빌어 요)

3. SharePoint 용 MAXDOP를 무엇으로 설정합니까?

"my"권장 사항은 Microsoft KB 2806535에서 제공 됩니다. 일반적으로 시작하지만 특정 응용 프로그램이 다른 것을 알려 주면 SQL Server와는 다른 응용 프로그램에 대한 정보를 알 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.