SQL Server Empfehlung für Speicher pro User und Datenbank
Hallo SQL Fachmänner,
ich bin derzeit auf der Suche nach einer sinnvollen Formel zum Errechnen der notwendigen SQL Serverressourcen eines Kunden. Der Server ist leider nicht sehr performant nur benötige ich ein Argument oder sys Abfragen um den Mangel an Ressourcen zu begründen.
Hier die Daten:
Der SQL-Server ist eine VM auf einem größeren ESX.
Die VM selbst hat laut Systemabfrage einen Quad 2.7 GHz Intel Xeon E5 v2 Chip
16 GB Ram
Windows 2008R2 SP1
Um die Lizenzkosten zu minimieren werden in einer SQL-Instanz 105 Kunden-DBs gehostet.
Der Server läuft laut Performance-Auswertung auf 60% CPU-Last und hat sich bei Schleifen-Tests hoch auf 80% bewegt. Im Schnitt werden 10-12GB von 16 GB RAM belegt.
Wieviel Speicher würdet Ihr empfehlen? Kennt jemand einen Leitfaden von Microsoft der sich nicht ausschließlich auf Maxmem und weitere Attribute der Konfig bezieht sondern sagt, wenn du 100 DBs mit einer Größe von 200 - 1GB in einer Instanz betreibst, dann rechne X MB Speicher pro DB bei X Usern.
Danke Euch
ich bin derzeit auf der Suche nach einer sinnvollen Formel zum Errechnen der notwendigen SQL Serverressourcen eines Kunden. Der Server ist leider nicht sehr performant nur benötige ich ein Argument oder sys Abfragen um den Mangel an Ressourcen zu begründen.
Hier die Daten:
Der SQL-Server ist eine VM auf einem größeren ESX.
Die VM selbst hat laut Systemabfrage einen Quad 2.7 GHz Intel Xeon E5 v2 Chip
16 GB Ram
Windows 2008R2 SP1
Um die Lizenzkosten zu minimieren werden in einer SQL-Instanz 105 Kunden-DBs gehostet.
Der Server läuft laut Performance-Auswertung auf 60% CPU-Last und hat sich bei Schleifen-Tests hoch auf 80% bewegt. Im Schnitt werden 10-12GB von 16 GB RAM belegt.
Wieviel Speicher würdet Ihr empfehlen? Kennt jemand einen Leitfaden von Microsoft der sich nicht ausschließlich auf Maxmem und weitere Attribute der Konfig bezieht sondern sagt, wenn du 100 DBs mit einer Größe von 200 - 1GB in einer Instanz betreibst, dann rechne X MB Speicher pro DB bei X Usern.
Danke Euch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 295624
Url: https://administrator.de/contentid/295624
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
4 Kommentare
Neuester Kommentar
Hi
RAM, SQL Server brauchen RAM und um eine Aussage zu treffen benötigt man noch die Daten vom Storage, wie hoch ist der Schreib-/Leseanteil, wie viele Abfragen werden aktuell aus dem RAM bedient (% Angabe), wie viele Waiting-Tasks laufen und wie "groß" sind diese usw usw usw. dann noch die Config, wie gut ist der Index der Datenbanken, sind die Datenbanken optimiert ....
So auf's blaue hinaus kann man keine Aussage treffen, wenn die 100 Datenbanken nur je 100MB groß sind, dann sind das peanuts, wenn die aber >10GB sind wir das schon eine ganz andere Hausnummer und die 16GB RAM sind mehr als Lächerlich .
Wir haben mit ~ 40 Datenbanken einen Server der 128GB RAM hat und durch Abfrageanteil von 90% der aus dem RAM bedient wird, werden wir den auf auf 256GB hochrüsten, damit reduziert man auch die IO Last auf dem Storage und die Requests laufen schneller durch, aber das ist halt auch auf uns abgestimmt...
Gruß
@clSchak
PS: Ich gehe jetzt mal davon aus, das der SQL Server im Cluster bzw. ein 2. im Hot-Standby läuft bei so vielen Kunden ... wobei das je nach Szenario eine Enterprise Lizenz voraussetzt und das klingt jetzt nicht danach...
RAM, SQL Server brauchen RAM und um eine Aussage zu treffen benötigt man noch die Daten vom Storage, wie hoch ist der Schreib-/Leseanteil, wie viele Abfragen werden aktuell aus dem RAM bedient (% Angabe), wie viele Waiting-Tasks laufen und wie "groß" sind diese usw usw usw. dann noch die Config, wie gut ist der Index der Datenbanken, sind die Datenbanken optimiert ....
So auf's blaue hinaus kann man keine Aussage treffen, wenn die 100 Datenbanken nur je 100MB groß sind, dann sind das peanuts, wenn die aber >10GB sind wir das schon eine ganz andere Hausnummer und die 16GB RAM sind mehr als Lächerlich .
Wir haben mit ~ 40 Datenbanken einen Server der 128GB RAM hat und durch Abfrageanteil von 90% der aus dem RAM bedient wird, werden wir den auf auf 256GB hochrüsten, damit reduziert man auch die IO Last auf dem Storage und die Requests laufen schneller durch, aber das ist halt auch auf uns abgestimmt...
Gruß
@clSchak
PS: Ich gehe jetzt mal davon aus, das der SQL Server im Cluster bzw. ein 2. im Hot-Standby läuft bei so vielen Kunden ... wobei das je nach Szenario eine Enterprise Lizenz voraussetzt und das klingt jetzt nicht danach...
Man kann Deine Anfrage nicht unbedingt beantworten.
Es kommt immer drauf an, wie viele Anfragen die Sekunden auf den SQL treffen und dieser die dann bearbeiten muss. Allerdings sind 10-12 GB RAM für ca. 105 DB recht wenig.
Bsp., wir haben eine DB mit 64 GB RAM ausgestattet, um u.a. den I/O zu entschärfen. Dein I/O mit ~250 finde ich recht wenig. Hier würde ich ggfls. ein leistungsstärkeres Storage hinter schalten.
Nichtsdestotrotz, rüste den SQL mit RAM auf. Wichtig ist auch, dass Du dem SQL-Server den RAM fest vergibst !!!
Du wirst dann sicherlich eine Verbesserung spüren.
Es kommt immer drauf an, wie viele Anfragen die Sekunden auf den SQL treffen und dieser die dann bearbeiten muss. Allerdings sind 10-12 GB RAM für ca. 105 DB recht wenig.
Bsp., wir haben eine DB mit 64 GB RAM ausgestattet, um u.a. den I/O zu entschärfen. Dein I/O mit ~250 finde ich recht wenig. Hier würde ich ggfls. ein leistungsstärkeres Storage hinter schalten.
Nichtsdestotrotz, rüste den SQL mit RAM auf. Wichtig ist auch, dass Du dem SQL-Server den RAM fest vergibst !!!
Du wirst dann sicherlich eine Verbesserung spüren.