SQLServer : Buffer Cache Hit 비율은 메모리 병목 현상이 있음을 나타내는 좋은 지표입니까?

메모리 병목 옵션을 무시하거나 수락하거나 추가 조사를 할 수있는 징후 (있는 경우)를 찾고 있습니다.

예 :

페이지 예상 수명 :

SELECT [object_name], [counter_name], [cntr_value] FROM sys.dm_os_performance_counters WHERE [object_name] LIKE "%Manager%" AND [counter_name] = "Page life expectancy" 

여기에 이미지 설명 입력

이번에는 현재 환경에 8GB의 RAM이있는 서버가 있습니다. 관리자에게 문의하겠습니다. 더 많은 메모리를 위해. 이것이 메모리 병목 현상이라고 생각합니다.

RAM을 사용하는 것은 또 다른 조사가 될 것입니다.

가능한 메모리 병목 현상을 식별하는 데 아래 이메일이 유효한가요?

SQLServer : Buffer Cache Hit 비율을 확인해야합니다.

해당 비율이 서버가 메모리 부족 상태에있는 것보다 95 % 미만인 경우

도움이되기를 바랍니다.

여기에 이미지 설명 입력

댓글

  • Buffer Cache hit ratio를 기반으로 기억에 대한 제안을하지 마십시오. . BCHR에 대한 훌륭한 SQL Server 토론 을 읽어보십시오. 사실 저는이 카운터에 의존하지 않습니다. PLE에 의존 할 수 있지만 모든 NUMA 노드에 대해 PLE를 확인해야합니다 (있는 경우).
  • PLE 값이 매우 적어 보이지만 다른 카운터는 괜찮습니다. 두 가지 버전으로 질문에 태그를 지정했습니다. 메모리 사용량을 모니터링하는 카운터 목록을 제공 할 수 있지만 관련된 버전이 2 개이므로 비트 차이입니다. 정확히 어떤 버전을보고 계십니까

답변

SQLServer : Buffer Cache Hit ratio를 살펴 봐야합니다. 해당 비율이 서버가 메모리 부족 상태에있는 것보다 95 % 미만이면

버퍼 살펴보기 중지 메모리 부족을 결정하기위한 캐시 적중률. 이는 SQL Server의 미리 읽기 메커니즘 을 사용하면 버퍼 풀에 충분한 페이지가 이미 버퍼 풀에 존재하여 BCHR이 메모리 압력에 대한 정확한 수치를 제공하지 않기 때문입니다. 메모리 부족이있을 때 BCHR이 떨어지지 않는 것을 볼 수도 있습니다. 이 모든 내용은 BCHR에 대한 훌륭한 SQL Server 토론

게시 한 PLE 출력이 정말 낮게 보이지만 카운터를 하나만 사용할 수는 없습니다. 메모리 압력을 측정하십시오. PLE는 서버의 I / O 활동을 더 많이 나타냅니다. 과도한 I / O 활동으로 인해 PLE가 급감 할 수 있습니다. Target 및 Total 서버 메모리를 기록해도 여전히 동일합니다. 좋은 징조입니다.

Edition upto 2008 R2의 경우. 아래 카운터를 사용할 수 있습니다.

  1. SQLServer : Buffer Manager–CheckpointPages / sec :

  2. SQLServer : Buffer Manager–Memory Grants 보류 :

  3. SQLServer : Buffer Manager– 대상 서버 메모리 :

  4. SQLServer : Buffer Manager– 총 서버 메모리

  5. SQLServer : Buffer Manager–Free Pages

  6. SQLServer : Buffer Manager–Free List Stall / sec

  7. SQLServer : Buffer Manager-페이지 예상 수명

SQL Server 2012 onwards 버퍼가 거의 없음 풀 카운터는 더 이상 사용되지 않으므로 Memory Manger 카운터를 사용해야합니다.

  1. SQL Server : Memory Manager– Target Server Memory (KB)

  2. SQL Server : 메모리 관리자-총 서버 메모리 (KB)

  3. SQL Server : 메모리 관리자-여유 메모리 (KB)

  4. SQL Server : 메모리 관리자-데이터베이스 캐시 메모리 (KB)

  5. SQLServer : 버퍼 관리자-사용 가능한 페이지

  6. SQLServer : Buffer Manager–Free List Stall / sec

  7. SQLServer : Buffer Manager–Page Life expectancy

디스크 활동이 많은 경우 디스크 관련 카운터도 참조하는 것을 잊지 마십시오. 데이터 수집기 집합을 생성 하고 시스템 부하가 최대 일 때 4-5 시간 동안 실행되도록 한 다음 질문에 데이터 수집기의 스냅 샷을 추가합니다. 그런 다음 SQL Server에 더 많은 메모리가 필요한지 여부를 결정할 수 있습니다.

개인적으로 8G는 요즘 작업 부하와 OS 요구 사항을 고려할 때 RAM이 약간 적습니다. 머릿속에서는 항상 RAM 증가에 대해 생각해야합니다.

답변

SQLServer : Buffer Cache Hit 비율을 살펴 봐야합니다.

해당 비율이 서버가 메모리 압력을받는 것보다 95 % 미만인 경우

도움이되기를 바랍니다.

이것은 메모리 병목 현상을 스스로 판단하는 데 도움이되지 않습니다. 오히려 내가 선호하는 것은 과부하 / 업무 시간 동안 적어도 하루 동안 아래 카운터에 대한 데이터를 수집하는 것입니다.

Memory – Available MBytes SQLServer: Buffer Manager – Page Life Expectancy SQLServer: Memory Manager – Memory Grants Pending SQLServer: Memory Manager – Target Server Memory SQLServer: Memory Manager – Total Server Memory SQLServer: SQL Statistics – Batch Requests/sec SQLServer: SQL Statistics – Compilations/sec 

가장 좋은 방법은 제안 된대로 SQL 서버를 기준으로 지정하는 것입니다. 기본으로 돌아 가기 : 프로덕션 SQL에 대한 기준 캡처 서버 는 문제에 대한 대기 통계와 함께 필요한 성능 카운터를 수집합니다.

또한 8GB RAM은 오늘날 환경에 따라 적합하지 않을 수 있지만 인스턴스 \ 인스턴스에서 호스팅되는 데이터베이스 크기와 함께 시스템에 대한 부하.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다