Heute erzählte mir ein Kollege, dass ein gestern (für einen Tag) angereister SQL-Server-Experte eine interessante These aufgestellt habe. Wegen eines Problems mit einem Windows-Server untersuchte er das System und begutachtete die Konfiguration. Auf dem Windows-2003-Enterprise-System (32 Bit, 32 GB RAM, 8 Kerne) sind drei SQL-Server-2005-Standard-Editionen mit jeweils 8 GBytes Max-Server-Memory.
Der Fachmann soll mit einer Kollegin von ihm telefoniert haben, die ihm sagte, dass man pro SQL-Server-Instanz (auf 32-Bit-Windows) nicht mehr als 8 GBytes Max-Server-Memory einstellen solle. Das ist mir völlig neu. Mir leuchtet das auch gar nicht ein: Warum sollte man auf einem SQL-Server mit konfiguriertem AWE nicht mehr als 8 GBytes Max-Server-Memory konfigurieren? Weiß da jemand etwas Ähnliches oder kann eine Erklärung/Link bieten?
Der Experte soll allerdings auch gesagt haben, dass meine Kollegen Min-Memory=Max-Memory setzen sollen, "weil der SQL-Server dann gleich beim Start den Memory allokiert". Da dauere dann der Start zwar länger, aber dann müsse der Speicher nicht erst zur Laufzeit angefordert werden, was das Laufzeitverhalten verbessere. Das ist nach meiner Erfahrung am SQL-Server-2005 aber nicht richtig.
Ich erlebte es so, dass der SQL-Server auch in der vorgeschlagenen Konfiguration mit wenig Cache anfängt, dann den benötigten RAM nur bei Bedarf allokiert und die Speichernutzung genauso langsam ansteigt, wie mit niedrigerem konfiguriertem Min-Server-Memory. Allerdings gibt der SQL-Server den Speicher nicht mehr her, wenn Engpässe beim verfügbaren RAM auftreten (was man aber sowieso durch ausreichend dimensionierte Speicherriegel verhindern sollte). In der Online Hilfe steht: "Eine SQL Server-Instanz, die nur wenige Anforderungen verarbeitet, wird den Wert von min server memory möglicherweise nie erreichen." Und hier: "Die Option min server memory zwingt SQL Server nicht, beim Starten eine Mindestmenge von Arbeitsspeicher zu reservieren."
Wie sind hier Eure Erfahrungen?
Leider ist es immer so mühsam von Experten in die Welt gesetzten Gerüchte wieder einzufangen… 🙁
Update 12.3.2009: Ein freundlicher Mitarbeiter der Firma des Experten wandte sich an mich, um das Problem zu lösen. Weil ich weder dem ohnehin nicht-namentlich genannten Experten schaden möchte, noch dem Ruf dieser Firma, habe ich deren Namen entfernt.
Ich hatte meine Frage zwar schon wieder vergessen, aber die Reaktion beantwortet sie meiner Ansicht nach… 😉