Frage

Ich habe eine Produktion "Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (x64)" Das zeigt einen seltsamen Puffer und die Symptome der Seitenweste (Ple).

Ich leite dies jede Minute auf meinem Server (um dieses Problem zu verfolgen):

generasacodicetagpre.

Dies ist einiger Beispielausgang:

generasacodicetagpre.

am Artikel # 24 SQL Server meldet die PLE, die von 1.282 bis 11 geht. SQL Server berichtet auch, dass die verwendeten Puffer von 8.012 bis 313 bis 313 gehen.

Zuerst suchte ich nach armen laufenden Anfragen, und ich fand ein ein paar fixe (hatte keinen Einfluss auf das Problem). Ich finde jedoch keine Problemanfragen, die mit den Zeiten korrelieren, in denen ich Ple / Pufferprobleme habe. Wenn es sich um eine schlechte Laufabfrage handelte, würde ich der Meinung sind, dass die Puffer voll von den Daten der Abfrage sein würden, nicht leer / fehlend / fehlerhaft.

Als nächstes dachte ich, dass die virtuelle Maschine sein Gedächtnis eingeschränkt hat, wenn dies der Fall war. Aber ich habe mein Systemadminister gefragt und versichert mir, dass der Speicher nicht dynamisch oder in irgendeiner Weise teilt. (Was es zugewiesen wird, es wird die ganze Zeit, sondern auch, ich führe dieses Skript alle 10 Minuten aus und wenn die PLE weniger als 50:

berichtet generasacodicetagpre.

und es meldet die gleichen / ähnlichen Werte, wenn die PLE / Puffer hoch sind und wenn sie niedrig sind. Für die Vollständigkeit ist hier ein Beispiel für die Werte vor und nach # 24 oben:

generasacodicetagpre.

Ich habe die Systemgesundheitssitzung überprüft und es zeigt nichts in Verbindung. (Alles, was es ist, ist die Identitätsfaluration, und ihre Zeiten korrelieren nicht mit den Zeiten, in denen die Ple / Puffer Probleme zeigen.

Ich habe verfolgt, wie oft dies auftritt, ich kann kein Muster sehen oder an beliebige Jobs oder geplante Aktivitäten verbinden.

Hier ist ein Diagramm, das Ple und Puffer über 21 Stunden zeigt:

 Ple und Puffer über 21 Stunden

also bin ich stumpiert. Ich denke, der Kern des Problems ist die Puffer, die nicht der PLE. (Ich denke, Ple bekommt einen falschen Bericht von Niedrig, weil alle Puffer irgendwie verschwunden sind.)

Aber ich kann mich nicht an irgendeine Weise vorstellen, dass dies passieren könnte. Oder was als nächstes zu tun.

Ich würde Ratschläge zu zusätzlichen Dingen, um zu überprüfen, zu überprüfen, was dieses Thema sein könnte.

Updates von Fragen in den Kommentaren:

Also, wie viel Speicher ist der Server, der angegeben ist? Der VM verfügt über 20 GB Speicher.
Was ist Max Server-Speicher?

generasacodicetagpre.

Hinweis: Ich habe gerade ein bisschen Lesen gemacht, und es scheint, dass diese Einstellungen für meinen Server falsch sind.

Wie groß ist die Datenbank? Es werden zwei Transaktionsdatenbanken auf diesem Server ausgeführt (ich bin dabei, Server zu ermitteln, um sie zu isolieren.) Ihre Größen betragen 383 GB und 378 GB.

Welche anderen Anwendungen und Dienstleistungen läuft auf diesem Server? Dieser Server beherbergt die Daten für meine Anwendung. Es gibt keine anderen Dinge, die es schlagen. (Ich habe einen replizierten operativen Datenspeicher für Berichte und z. B.

Was ist die VM-Technologie vm Ware.
Läuft dieses VM auf einem Host, der nur VMs mit ähnlicher Ressourcenzuteilung veranstaltet? Wir haben viele VMs in unserem Unternehmen. Alle unterschiedlichen Größe. Dies ist jedoch einer der größten.

Können Sie bestätigen, was Ihr Systemadministrator Sie über die Speicherzuordnung erzählt, ohne ihm nur glauben zu müssen? Ich kann nicht. Ich habe keinen Zugriff auf diese Werkzeuge.

(In meiner Erfahrung werden die Systemadrate in meiner Erfahrung viele Dinge sagen, um das Buck passieren zu lassen, und die Schuld der App oder irgendjemanden, wenn es bedeutet, dass sie nichts tun müssen.) Ich kann vollständig verstehe dieses Gefühl.

Das Muster ist sicherlich wie ein schwerer Speicherdruck ich stimme zu. Ich hatte gehofft, etwas zu finden, um zu beweisen, dass SQL den Speicherdruck fühlt. So kann ich es für mehr Forschung an die Systemadministin zurücksenden.

Wartezeitstatistik

generasacodicetagpre.

War es hilfreich?

Lösung

Wie erörtert auf Dieser SE-Thread und von op.

Das Problem ist auf Fehler in SQL Server 2012 zurückzuführen. THS Fehler wurde in SQL Server 2012 SP1 CU4 .Oder auf Safer gesagt, ich würde Ihnen empfehlen, SQL Server 2012SP2 , anstatt für CU4 zu gehen.

gemäß Microsoft Bug Fixedetail

Sie können langsame Leistung in SQL Server 2012 erleben. Wenn Sie überprüfen SQL Server Performance Monitor Tools, Sie sehen Folgendes:

• ein schneller Rückgang des SQLServers: Puffermanager \ Seite Lebenserwartung Leistungszählerwerte.Wenn dieses Problem auftritt, ist der Zähler in der Nähe von 0.

Andere Tipps

Ihr Pufferpool ist nur 13 GB und Ihre Datenbanken sind 383 GB und 378 GB, die Sie als OLTP eingestuft haben - kleine Transaktionen, die zu häufig läuft.

Die obige Situation, wenn ich mir vorstellen muss, wie folgt:

 Geben Sie hier eingeben Beschreibung hier eingeben (Quelle: Google-Fotos)

Sie müssen verstehen, wie SQL Server Informationen speichert:

SQL Server speichert Informationen im Speicher in einer Struktur, die als Speichercache bezeichnet wird. Die Informationen im Cache können Daten, Indexeinträge, zusammengestellte Verfahrenspläne und eine Vielzahl anderer Arten von SQL Server-Informationen sein. Um das Wiedererstellen der Informationen zu vermeiden, wird der Speichercache so lange aufbewahrt Wie möglich und ist normalerweise aus dem Cache entfernt, wenn es zu alt ist, um nützlich zu sein, oder wenn der Speicherplatz für neue Informationen benötigt wird. Der Prozess, der alte Informationen entfernt, wird als Speicherfeger bezeichnet. Der Speicher-Sweep ist eine häufige Aktivität, ist jedoch nicht kontinuierlich.

Sie sind sicher, dass Sie die Erörterung der Speicherhunger aufgrund der spitzen Datenbankgröße und Ihres unzureichenden Pufferpools erleben. Siehe - So ermitteln Sie den idealen Speicher beispielsweise?

Sammeln Sie Statistiken und Überprüfung auf Leistung Probleme, die sich aus verschwendeter Pufferpoolspeicher

entstehen

Empfehlung:

Fügen Sie mehr Speicher in die Serverinstanz hinzu und trennen Sie die beiden Datenbanken auf unterschiedlichen VMs mit ausreichendem Speicher.

Es ist hier sehr wenig zu debuggen - Sie müssen den Speicher hinzufügen, Ihre Datenbank logisch auf mehrere VMs logisch aufteilen oder verstehen, dass der Mischen Sie mit eingeschränktem Speicher zu Leistungsproblemen und volatiler PLE führen wird.Der Versuch, 800 GB Daten in 13 GB Speicher anzupassen, ist wie der Versuch, in einem Rucksack zu verstauen.

schauen Sie an den ausgeführten Abfragen näher an.Die Speichernutzung allein auf Datenbanken ist normalerweise zu grob, um die Dinge zu verbessern.Angenommen, Sie können die Abfragen (Black Box-Anwendungsanwendung) nicht beeinflussen, es ist immer noch ein Verständnis wert, was die Speicherverwendung beeinträchtigt.Beispielsweise kann ein Batch-Prozess angezeigt und den gesamten Pufferraum in einem einzigen Treffer verwenden, indem Sie alle Daten auf einem massiven Tisch abfragen.

Insbesondere nach fehlenden Indizes suchen, die vollständige Tabellen-Scans verursachen - da sie den Cache auf dem Server effektiv spülen können.

SQL Server verfügt über ein hervorragendes Set von Analysator-Tools, das es in Echtzeit überwachen kann, und ich vermute, dass Sie sehen, dass etwas wie ein wunder Daumen herauskleben, sobald Sie hineintauchen.

nicht, dass ich darauf schlage, das Datenbankschema zu ändern, aber eines zu achten ist übermäßig große VARCHAR-Felder - sie können den Cache-Speicherplatz in einer großen Datenbank wirklich aufladen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top