Ich suche nach einem Hinweis (falls vorhanden), der die Option für Speicherengpässe entweder ignoriert oder akzeptiert oder mich weiter untersuchen lässt.
zum Beispiel:
Lebenserwartung der Seite:
SELECT [object_name], [counter_name], [cntr_value] FROM sys.dm_os_performance_counters WHERE [object_name] LIKE "%Manager%" AND [counter_name] = "Page life expectancy"
Bei dieser Gelegenheit habe ich in meiner aktuellen Umgebung einen Server mit 8 GB RAM. Ich würde das Management bitten für mehr Speicher. Ich glaube, dies ist ein Speicherengpass.
Was den RAM verwendet, wäre eine weitere Untersuchung.
Ist diese E-Mail unten gültig, um mögliche Speicherengpässe zu identifizieren?
Wir müssen uns SQLServer ansehen: Puffer-Cache-Trefferquote
Wenn diese Quote weniger als 95% beträgt, steht der Server unter Speicherdruck
Ich hoffe, dies hilft.
Kommentare
- Bitte stützen Sie Ihren Vorschlag zum Speicher nicht auf
Buffer Cache hit ratio
. Bitte lesen Sie Große SQL Server-Debatte über BCHR , da ich mich nie auf diesen Zähler verlasse. Sie können sich auf PLE verlassen, müssen jedoch PLE für alle NUMA-Knoten sehen (falls vorhanden). - Der PLE-Wert scheint sehr niedrig zu sein, aber andere Zähler sind in Ordnung. Sie haben die Frage mit zwei Versionen versehen. Ich kann Ihnen eine Liste von Zählern zur Überwachung der Speichernutzung geben. Da es sich jedoch um zwei Versionen handelt, handelt es sich um einen kleinen Unterschied. Welche Version sehen Sie genau?
Antwort
Wir müssen uns die Trefferquote von SQLServer: Buffer Cache ansehen. Wenn diese Quote weniger als 95% beträgt, steht der Server unter Speicherdruck.
Hören Sie auf, nach Buffer zu suchen Cache-Trefferquote zur Bestimmung des Speicherdrucks. Dies liegt daran, dass mit Vorauslesemechanismus in SQL Server mehr als genug Seiten im Pufferpool vorhanden sind, um die Abfrage zu erfüllen, sodass BCHR keine genaue Zahl über den Speicherdruck liefert. Möglicherweise sehen Sie sogar, dass der BCHR bei Speicherdruck nicht abfällt. All dies wurde in erklärt. Die große SQL Server-Debatte über BCHR
Die von Ihnen veröffentlichte PLE-Ausgabe scheint sehr niedrig zu sein, aber wir können nicht nur einen Zähler verwenden Manometer-Speicherdruck. PLE ist ein weiterer Hinweis auf die E / A-Aktivität auf dem Server. Es ist möglich, dass PLE aufgrund starker E / A-Aktivität einbrach. Wenn Sie feststellen, dass der Ziel- und der Gesamtserverspeicher immer noch gleich bleiben. Welches ist ein gutes Zeichen.
Für Edition upto 2008 R2
. Sie können die folgenden Zähler verwenden:
-
SQLServer: Puffermanager – CheckpointPages / Sek.:
-
SQLServer: Puffermanager – Speicherzuschüsse Ausstehend:
-
SQLServer: Puffermanager – Zielserverspeicher:
-
SQLServer: Puffermanager – Gesamtserverspeicher
-
SQLServer: Puffermanager – Freie Seiten
-
SQLServer: Puffermanager – Freier Listenstillstand / Sek.
-
SQLServer: Buffer Manager – Seitenlebensdauer
Für SQL Server 2012 onwards
wenige Puffer Poolzähler sind veraltet und daher müssen wir Memory Manager-Zähler verwenden.
-
SQL Server: Speichermanager – Zielserverspeicher (KB)
-
SQL Server: Speichermanager – Gesamter Serverspeicher (KB)
-
SQL Server: Speichermanager – Freier Speicher (KB)
-
SQL Server: Speichermanager – Datenbank-Cache-Speicher (KB)
-
SQLServer: Puffer-Manager – Freie Seiten
-
SQLServer: Buffer Manager – Free List Stall / Sek.
-
SQLServer: Buffer Manager – Lebenserwartung der Seite
Beachten Sie, dass Sie bei starker Festplattenaktivität nicht vergessen müssen, auch auf die Festplatten zu beziehen. Erstellen Sie einen Datenkollektorsatz und lassen Sie ihn 4-5 Stunden lang laufen, wenn die Systemlast am höchsten ist. Fügen Sie dann den Snapshot des Datenkollektors in Ihre Frage ein. Dann können wir feststellen, ob SQL Server mehr Speicher benötigt oder nicht.
Persönlich ist 8G unter Berücksichtigung der Arbeitslast und der Betriebssystemanforderungen heutzutage etwas weniger RAM. Am Hinterkopf sollten Sie immer daran denken, den Arbeitsspeicher zu erhöhen.
Antwort
Wir müssen uns SQLServer ansehen: Puffer-Cache-Trefferquote
Wenn diese Quote weniger als 95% beträgt, steht der Server unter Speicherdruck
Ich hoffe, dies hilft,
Dies hilft Ihnen nicht, den Speicherengpass sicher selbst zu bestimmen. Eher würde ich es vorziehen, die Daten für unter den Zählern mindestens für einen Tag während der schweren Last / Geschäftszeiten zu sammeln.
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
Das Beste wäre, den SQL-Server wie vorgeschlagen zu baseline Zurück zu den Grundlagen: Erfassen von Baselines in Production SQL Server , die auch die erforderlichen Perfmon-Zähler zusammen mit Wartestatistiken für Probleme erfassen.
Außerdem sind 8 GB RAM möglicherweise nicht so geeignet wie in der heutigen Umgebung, aber es kommt wieder darauf an, was ist die Systemlast zusammen mit der Größe der auf der Instanz \ instance gehosteten Datenbanken.