SQLServer: współczynnik trafień bufora pamięci podręcznej jest dobrą wskazówką na MOŻLIWE wąskie gardło pamięci?

Szukam wskazówki (jeśli w ogóle), która zignorowałaby opcję wąskiego gardła pamięci, zaakceptowała ją lub skłoniła mnie do dalszych badań.

na przykład:

oczekiwana długość życia strony:

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

tutaj wprowadź opis obrazu

Z tej okazji na moim obecnym środowisku mam serwer z 8 GB RAM-u, proszę kierownictwo więcej pamięci. Uważam, że jest to wąskie gardło pamięci.

Co używa pamięci RAM, byłoby kolejnym dochodzeniem.

Czy ten e-mail poniżej służy do identyfikacji możliwych wąskich gardeł pamięci?

musimy spojrzeć na współczynnik SQLServer: Buffer Cache Hit

Jeśli ten współczynnik jest mniejszy niż 95%, serwer jest pod presją pamięci

Mam nadzieję, że to pomoże,

tutaj wprowadź opis obrazu

Komentarze

  • Nie opieraj swoich sugestii dotyczących pamięci na Buffer Cache hit ratio . Przeczytaj wielką debatę o programie SQL Server na temat BCHR , ponieważ nigdy nie polegam na tym liczniku. Możesz polegać na PLE, ale musisz zobaczyć PLE dla wszystkich węzłów NUMA (jeśli masz)
  • Wartość PLE wydaje się być bardzo mniejsza, ale inne liczniki są w porządku. Oznaczyłeś pytanie dwoma wersjami, mogę podać listę liczników do monitorowania zużycia pamięci, ale ponieważ są zaangażowane 2 wersje, ich różnica jest bitowa. Której wersji dokładnie szukasz

Odpowiedź

Musimy spojrzeć na współczynnik SQLServer: Buffer Cache Hit. Jeśli ten współczynnik jest mniejszy niż 95%, serwer jest pod presją pamięci

Przestań patrzeć na Buffer Współczynnik trafień w pamięci podręcznej w celu określenia obciążenia pamięci. Dzieje się tak, ponieważ dzięki mechanizmowi odczytu z wyprzedzeniem w programie SQL Server w puli buforów jest już więcej niż wystarczająca liczba stron, aby spełnić zapytanie, więc BCHR nie podaje dokładnych danych dotyczących obciążenia pamięci. Możesz nawet zauważyć, że BCHR nawet nie spadnie, gdy występuje presja pamięci. Wszystko to zostało wyjaśnione w Wielkiej debacie o SQL Server na temat BCHR

Opublikowane przez Ciebie wyniki PLE wydają się naprawdę niskie, ale nie możemy po prostu użyć jednego licznika do ciśnienie pamięci manometru. PLE bardziej wskazuje na aktywność we / wy na serwerze. Możliwe, że z powodu dużej aktywności we / wy poziom PLE spadł. Jeśli zauważysz, że docelowa i całkowita pamięć serwera nadal pozostaje taka sama. To dobry znak.

Dla Edition upto 2008 R2. Możesz użyć poniższych liczników

  1. SQLServer: Buffer Manager – CheckpointPages / sec:

  2. SQLServer: Buffer Manager – Memory Grants Oczekujące:

  3. SQLServer: Buffer Manager – Docelowa pamięć serwera:

  4. SQLServer: Buffer Manager – Całkowita pamięć serwera

  5. SQLServer: Buffer Manager – darmowe strony

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

  7. SQLServer: Buffer Manager – Oczekiwana długość strony

Dla SQL Server 2012 onwards kilku buforów Liczniki puli są przestarzałe, dlatego musimy używać liczników Menedżera pamięci

  1. SQL Server: Memory Manager – pamięć serwera docelowego (KB)

  2. SQL Server: Memory Manager – całkowita pamięć serwera (KB)

  3. SQL Server: Memory Manager – wolna pamięć (KB)

  4. SQL Server: Menedżer pamięci – Pamięć podręczna bazy danych (KB)

  5. SQLServer: Menedżer buforów – bezpłatne strony

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

  7. SQLServer: Buffer Manager – Oczekiwana długość życia strony

Uwaga, jeśli masz duży ruch na dysku, nie zapomnij również sprawdzić liczników związanych z dyskami. Utwórz zestaw modułów zbierających dane i pozwól mu działać przez 4-5 godzin, gdy obciążenie systemu jest szczytowe, a następnie dodaj do pytania migawkę modułu zbierającego dane. Następnie możemy określić, czy SQL Server potrzebuje więcej pamięci, czy nie.

Osobiście 8G to trochę mniej pamięci RAM, biorąc pod uwagę obecne obciążenie i wymagania systemu operacyjnego. Z tyłu głowy zawsze powinieneś pomyśleć o zwiększeniu pamięci RAM.

Odpowiedź

musimy spojrzeć na współczynnik SQLServer: Buffer Cache Hit

Jeśli ten współczynnik jest mniejszy niż 95%, serwer jest pod presją pamięci

Mam nadzieję, że to pomoże,

To z pewnością nie pomoże w samodzielnym rozstrzygnięciu problemu wąskiego gardła pamięci. Wolałbym raczej zbierać dane dla poniższych liczników przynajmniej przez jeden dzień w godzinach dużego obciążenia / pracy.

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 

Zgodnie z sugestią podstawową obsługę serwera SQL Powrót do podstaw: przechwytywanie planów bazowych w produkcyjnym języku SQL Serwery , które będą również gromadzić wymagane liczniki perfmon wraz ze statystykami oczekiwania dla każdego problemu.

Ponadto 8 GB RAM może nie być tak odpowiednie, jak na dzisiejsze środowisko, ale znowu zależy to od tego, co jest obciążenie systemu wraz z rozmiarem baz danych hostowanych na instancji \ instancjach.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *