Ich habe einen Linux-Server in einer kleinen Firma (3 Benutzer), der als Domänenserver fungiert und zwei VMs unter VMware ausführt: Einer hat SQL Server 2000 und einer SQL Server 2005, jeweils unter Win2k. Jeder der SQL Server verfügt über einige kleine, aber wichtige Datenbanken.
Soweit ich das beurteilen kann, verbringt der Linux-Server sein Leben total gelangweilt. Es verfügt über 2 GB Arbeitsspeicher, verwendet jedoch selbst bei VMs nie mehr als 512 MB, der Rest wird dem Cache zugewiesen.
Aber die VM-Leistung stinkt! Die Datenbanken sind langsamer als zuvor, als ich sie von dedizierten (aber alten) Maschinen verschoben habe. Wenn eine Datenbank längere Zeit nicht verwendet wurde, können Sie einen Kaffee trinken, bevor sie erneut reagiert.
Was kann ich tun, um die Leistung zu verbessern?
quelle
Antworten:
Ich hatte ein ähnliches Problem. Virtuelle Festplatten beeinträchtigen die Leistung. Versuchen Sie, so viele Daten wie möglich in den Speicher zu bringen. Ich habe die festplattenintensiven VMs schließlich auf einen eigenen RAID-Stack gestellt.
Die meisten Leute in OIT empfehlen aus diesem Grund nicht, festplattenintensive Anwendungen in eine VM zu integrieren. Sie haben auch nicht angegeben, welches VMWare-Produkt Sie verwenden. ESXi wurde vor nicht allzu langer Zeit kostenlos veröffentlicht. Wenn Sie es nicht verwenden, können Sie es ausprobieren. Es kann Ihnen helfen, die letzte Leistung zu erzielen, die Sie benötigen.
quelle
SQL Server ist eine E / A-Maschinenperiode.
SQL Server verwendet Speicher als Cache. Je mehr Speicher im Speicher gespeichert werden kann, desto besser ist die Leseleistung. Ich würde mir auch eine Hyper-Visier-basierte VM-Lösung ansehen, um Sie so nah wie möglich an die physische Maschine zu bringen.
Das Aufteilen der vdisk auf verschiedene Spindelsätze hilft ebenfalls.
quelle
Scheint das Leistungsproblem an die CPU, die Festplatte oder das Netzwerk gebunden zu sein? dh ist der Festplatten-Thrashing oder die CPU während einer einzelnen teuren langsamen Abfrage maximal, oder ist es für Remote-Abfragen langsam, selbst wenn sie klein sind?
Wie werden die virtuellen Festplatten zugewiesen? Haben Sie versucht, sie zu defragmentieren?
Wie viel Speicher ist für die VMs reserviert? Haben die Gast-Win2ks ein Problem mit wenig Speicher?
Gibt es genügend RAM für den SQL Server, um die gesamte Datenbank zwischenzuspeichern, und wäre es praktisch, sie so zuzuweisen, dass dies möglich ist? Der Festplattenzugriff kann innerhalb einer VM sehr langsam sein.
Wäre es praktisch, beide SQL Server-Installationen auf dieselbe VM zu verschieben? Dies würde den Ressourcenkonflikt zwischen ihnen verringern.
quelle
Sie sollten sich auf die Festplatten-E / A konzentrieren. Ist Ihre VM-Installation auf Autogrow eingestellt? Wenn ja, ist dies die Ursache Ihres Problems. Angenommen, SQL wird automatisch wachsen und VM wird die Festplattenzuweisung automatisch vergrößern, befinden Sie sich auf dem Weg slowville.
Wir haben ein Abrechnungssystem eingerichtet, das als Backoffice für die Personalabteilung dient und eine zweiwöchentliche Abrechnung für mehr als 900 Mitarbeiter auf VMWare ohne Probleme erstellt. Zu diesem Zweck haben wir vierteljährlich Laufwerk vorab zugewiesen und sowohl das VM-Slice als auch den VM-Host defragmentiert. Wenn Sie die Festplatten auf dem neuesten Stand halten, trägt dies wesentlich zur Aufrechterhaltung einer guten Leistung bei.
quelle
Könnte es sein, dass Sie die DB-Option Auto Close auf 'ON' gesetzt haben?
quelle