2012-08-14 5 views
0

필자는 "SQL Server 2008 Query Performance Tuning Distilled"라는 책을 읽고 일부 경우 perf mon 메트릭에 대한 설명이 약간 모호하다는 것을 알았습니다. 내가 다루는 모든 측정 항목을 나열하고 각 것에 대한 내 감각을 나열합니다. 필요한 부분을 설명해주고 싶습니다. 내 의견을 제안, 그것은 주로 항목 # 2, 6, 7 도움을 찾고 있어요.Perf Mon 메트릭 분석

  1. 사용 가능한 바이트 : 무료 실제 메모리. 자명 한
  2. 페이지/초 및 페이지 오류/초 : 99 %가 명확합니다. 유일한 질문은 페이지가 메모리에서 한 위치에서 다른 위치로 스왑 될 수있는 이유입니다 (소프트 오류).
  3. 버퍼 캐시 적중률 : 새로 요청한 메모리를 얼마나 자주 사용할 수 있는지. 아마 저조한 이름이 붙어 있긴하지만 분명히 보입니다. 그 대신에 "Buffer Pool Free Hit Ratio"라고 불러야했는지 궁금합니다.
  4. Page 수명 예상치 :이 버퍼 풀 캐시 메트릭은 캐시 히트 빈도와 사용 가능한 메모리로 제어됩니다. 오히려 분명하다.
  5. 지연 기록/초 : 디스크에 더티 버퍼를 쓰는 비율. 오히려 분명하다.
  6. 메모리 보조금 보류 중 : "SQL Server 메모리 내에서 메모리 부여를 위해 보류중인 프로세스 수". 이상한. SQL Server 메모리와 관련된 프로세스가 정확히 하나만 있으면 안됩니까? 확실하지 않습니다!
  7. 대상/전체 서버 메모리 : "총 서버 메모리가 대상 서버 메모리보다 훨씬 적 으면 ... 최대 서버 메모리 구성 매개 변수가 너무 낮게 설정되어 있습니다." 다소 불명확하다. SQL 서버 메모리 사용의 합계를 결정하는 두 가지 설정 인 target server memorymax server memory이있는 이유는 무엇입니까? 그것은 "합계"가 결합 된 모든 데이터베이스 인스턴스에 대한 것이기 때문에 "최대"는 개별 데이터베이스에 대한 것입니까?

아마도 항목 # 7과 관련된 전반적인 질문은 각 데이터베이스 인스턴스가 사용 가능한 모든 실제 메모리의 (거의) 최대 메모리 사용량으로 구성 될 때 어떻게됩니까? 나는 SQL Server가 호스팅하는 모든 인스턴스에 그렇게 많은 것을 부여하지 않을 것이며, 필요에 따라 자체 균형을 유지할 것이라고 예상합니까? 그것보다 더 복잡한가?

답변

1

유일한 이유는 페이지가 메모리의 한 위치에서 다른 위치로 바뀔 수있는 이유입니다 (소프트 결함).

소프트 결함은 실제로 페이지를 이동시키지 않습니다. 프로세스 작업 세트가 연속적으로 정리되고 페이지가 '대기'상태에 배치됩니다. 그들은 똑같은 물리적 위치를 유지하지만, 커널의 디스크립터는 '대기'로 표시됩니다. 이 페이지를 참조하는 프로세스는 '소프트 결함'을 발생시킵니다. 즉, 페이지 설명자가 '고정'되고 페이지가 프로세스 작업 세트로 되돌아갑니다. 트리밍 및 소프트 결함의 전체 프로세스 중에 실제 RAM에서 실제로 이동 된 페이지의 내용은 없습니다.

버퍼 캐시 비율 히트 : 신선한 요청 된 메모리를 사용할 수있는 얼마나 자주 즉시

아니오, 그것은 DB 페이지에 대한 많은 요청이 메모리에서 페이지를 발견하고를 발행하지 않은 방법을 의미합니다 IO를 디스크에서 가져옵니다.

메모리 보조금 보류 중 : "SQL Server 메모리 내에서 메모리 부여를 위해 보류중인 프로세스 수"입니다.

이것은 완전히 다른 주제입니다. 여기에서 읽으십시오 : Understanding SQL server memory grant.

대상/총 서버 메모리

읽기 SQLOS's memory manager and SQL Server's Buffer Pool. 조금 오래된,하지만 여전히 아주 정확 특별히 사전에 SQL 서버 2012

(거의)은 모든 사용 가능한 실제 메모리의 합계 있다는 것을 각 데이터베이스 인스턴스가 최대 메모리 사용을 위해 구성 될 때 발생

SQL Server에서 예상되는 작동 모드입니다. 모두를 호스트의 메모리 인으로 캡처 한 다음 자체적으로 관리하도록 설계되었습니다. 이것은 다른 프로세스를 SQL Server (예 : IIS 없음, Exchange 없음, AD 도메인 컨트롤러 없음, SSIS 없음, RS 없음, AS 없음 등)를 호스트하도록 지정하지 않은 이유입니다. 또한 호스트 당 하나의 인스턴스를 호스팅하는 것이 가장 좋은 이유이기도합니다.

관련 문제