Forum: PC-Programmierung Herrausfinden wieviel Ram genutzt wird Windows


von Johannes M. (jojo20)


Lesenswert?

Hallo,

ich suche eine Möglichkeit, herauszufinden wieviel Ram ein MS SQL Server 
wirklich benötigt.

Wir setzen hier eine Software ein die diesen benötigt. vorgabe vom 
Hersteller der darauf aufbauenden Software sind min 64GB für den SQL 
Server.

Nun nimmst sich der SQL Server auch die 64GB, ich würde jetzt gerne 
herausfinden wieviel Speicherstellen in einer bestimmten Zeit wirklich 
gelesen/geschrieben werden. Also ob z.b. 3/4 von den 64GB nie gelesen 
oder geschrieben werden.

Gibt es dazu eine Möglichkeit?

von Peter II (Gast)


Lesenswert?

Johannes M. schrieb:
> Gibt es dazu eine Möglichkeit?

nein, nicht das ich wüsste. Ihr könnt nur den Speicher einfach mal auf 
32GB begrenzen und schauen wie dann euer System läuft.


wir haben Datenbanken mit 500GB und haben meist nur 16GB Ram. Muss man 
halt testen was man wirklich braucht, kann man selten pauschal sagen. 
Mehr RAM schadet zwar nicht, bringt aber auch nicht immer die erhoffte 
Verbesserung.

von Johannes M. (jojo20)


Lesenswert?

Ok Schade,

Problem ist hier der Hersteller, der sagt wir würden das so benötigen 
und die Fachaufgabe auf den Hersteller hört und nicht auf uns (interne 
IT-Abteilung).

Und wir müssen das ganze dann so Hosten, Problem ist dabei das der SQL 
Server in einer VM liegt. Nur diese können wir nicht auf einen anderen 
Host schieben, weil er zu viel Rem benötigt. D.h. Hat der Host ein 
Problem ist auch die VM weg.

Jetzt hätte es mich einfach mal intressiert ob der wirklich den ganzen 
Ram benötigt.

Beim Anwendungsserver der auf den SQL Server zugreift war z.b. die 
Forderung des Herstellers 32GB, wirklich genutzt werden 3 GB :-D

von (prx) A. K. (prx)


Lesenswert?

Win7: Windows Task-Manager : Ansicht : Spalten auswählen : 
Arbeitsspeicher - Arbeitssatz.

Englisch klingt es als "Working Set" überzeugender. Das ist nämlich der 
Fachbegriff für jene Menge an Speicher, auf den leidlich kurzfristig 
auch wirklich zugegriffen wird.

Gibts garantiert auch in dem Kurven bildenden Performance-Tool.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Johannes M. schrieb:
> Und wir müssen das ganze dann so Hosten, Problem ist dabei das der SQL
> Server in einer VM liegt.

Das sollte es eigentlich erleichtern. Erstens weil der Hypervisor 
möglicherweise seinerseits eine Working Set Statistik liefert. Zweitens 
weil es damit umso einfacher ist, verschiedene Speicherkonfigurationen 
durchzuprobieren.

von Peter II (Gast)


Lesenswert?

Johannes M. schrieb:
> Problem ist hier der Hersteller, der sagt wir würden das so benötigen

ja kenne ich, bei einem Zahnarzt mit 3 Sprechzimmer musste es zwingend 
ein SQL-Server Standard sein - für eine 500Mbyte Datenbank.

Wie sind auf Risiko gegangen und haben SQL-Express installiert - läuft 
reibungslos.


Wenn ihr euch an den Hersteller halten MÜSST, dann müsst ihr eure 
Cluster halt entsprechend aufrüsten - oder ihr macht den Test mit 
weniger Ram. Muss halt jemand entscheiden, der auch etwas entscheiden 
darf.

von Johannes S. (Gast)


Lesenswert?

Ich habe jetzt schon länger nicht mehr mit den aktuellen MS SQL 
gearbeitet, aber früher waren immer gute Profiling und Analyse Tools 
dabei, vielleicht geben die heute auch Hinweise zur Resourcennutzung? 
Das meiste brachte immer eine Optimierung der Indizies, bei Tabellen mit 
vielen Zeilen den Faktor 1000 und mehr.

von (prx) A. K. (prx)


Lesenswert?

A. K. schrieb:
> Win7: Windows Task-Manager : Ansicht : Spalten auswählen :
> Arbeitsspeicher - Arbeitssatz.

PS: oder die "private" Variante.

Ich mag kein Deutsch. In solchem Zusammenhang.

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

A. K. schrieb:
> Win7: Windows Task-Manager : Ansicht : Spalten auswählen :
> Arbeitsspeicher - Arbeitssatz.

Das Problem dabei wird sein, das der SQL-Server im zweifelfall alle 
Cacht. Es wird also jeder Bereich mal gelesen. Auch gibt der Server 
seinen RAM nur wieder frei, wenn ihm das System ein Event schickt.

von (prx) A. K. (prx)


Angehängte Dateien:

Lesenswert?

Konkretes Beispiel eines recht aktiven 32GB Servers mit MS-SQL und OLAP 
für Data Mining. Die untere Kurve ist das, was VMware ESXi als aktiven 
Speicher betrachtet.

: Bearbeitet durch User
von Jörg M. (derlang)


Lesenswert?

Johannes M. schrieb:
> Ok Schade,
>
> Problem ist hier der Hersteller, der sagt wir würden das so benötigen
> und die Fachaufgabe auf den Hersteller hört und nicht auf uns (interne
> IT-Abteilung).
>

Da hat meines Erachtens die "Fachaufgabe" recht. Wenn der Hersteller 
diese Anforderungen hat, sollte man diese einhalten. Ansonsten kann der 
Hersteller jederzeit sagen, dass seine Spezifikation nicht eingehalten 
worden ist und somit keine Verantwortung übernommen wird.

Wenn die Anforderungen nicht erfüllbar oder einem nicht korrekt 
vorkommen, so hat man entweder die Freiheit einen anderen Anbieter zu 
suchen, oder mit dem jetzigen in Verhandlung treten. Meist sind diese 
Anforderungen pauschal dargestellt. Fragt nach ob es auch mit weniger 
geht und lasst euch die Minimalanforderungen für euren Anwendungsfall 
schriftlich geben.

von Der Andere (Gast)


Lesenswert?

Ganz prima, der Hersteller der Software gibt aus leidigen Erfahrungen 
eine Minimalveraussetzung vor, und die lokale IT weiß es natürlich 
wieder besser.
2 Monate später macht die Fachabteilung dann einen Heidentrara beim 
Hersteller weils Fehler gibt und alles so langsam ist, die Hotline des 
Herstellers verbrät Stunden und Tage damit Logs anzufordern und zu 
analysieren um die vermeintlichen Fehler zu finden und am Ende stellt 
sich raus die Vollhonks der lokalen IT wollten die Software entgegen 
allen kommunizierten Anforderungen unbedingt auf dem 8 Jahre alten 
Server laufen lassen, den sie irgendwo unter einem Tisch oder im Keller 
gefunden hatten.

Aber immer ist der Hersteller schuld. Been there, seen that, ...

von Peter II (Gast)


Lesenswert?

Der Andere schrieb:
> Ganz prima, der Hersteller der Software gibt aus leidigen Erfahrungen
> eine Minimalveraussetzung vor, und die lokale IT weiß es natürlich
> wieder besser.

Es gibt Unternehmen die wirtschaftlich denken müssen, und ich habe schon 
einige male Herstellerangaben gesehen die viel zu viel überdimensioniert 
werden.

z.b. Mindestens 8GB Ram und dann wird nur eine SQL-Express der nur 2-3GB 
verwendet kann. (mehr läuft auf dem System nicht). Da kann man halt 
selber entscheiden nur 4GB einzusetzen.



Wenn dir dein Autohersteller sagt, du sollte nur Super+Plus von Aral 
Tanken machst du es dann?

von SR (Gast)


Lesenswert?

Da würde ich doch gar nicht drüber nachdenken - das Problem mit Hardware 
zu erschlagen (64GB reg ECC / DDR3) kosten derzeit rund 400 EUR - da 
kann man nicht viel länger als 4 Stunden versuchen das Problem zu lösen.

Und hat dann eine nicht vom Hersteller freigebene Lösung... Falls man 
nur auf 32GB kommt, hat man auch nur die Hälfte gespart..

von Jörg M. (derlang)


Lesenswert?

Peter II schrieb:
>
> Wenn dir dein Autohersteller sagt, du sollte nur Super+Plus von Aral
> Tanken machst du es dann?

Wenn die Anforderung im Vertrag steht und ich etwas anderes tanke, dann 
ist das meine Verantwortung. Läuft etwas nicht, geht etwas kaputt und 
der Hersteller kann nachweisen, dass ich bei anderen getankt habe, dann 
bin ich der dumme.

Und das Beispiel ist falsch, der Hersteller sagt, tanke SuperPlus und du 
tankst Normal Benzin. Geht, kann aber auch schief gehen. Der Hersteller 
ist dann fein raus.

von (prx) A. K. (prx)


Lesenswert?

Der Andere schrieb:
> Ganz prima, der Hersteller der Software gibt aus leidigen Erfahrungen
> eine Minimalveraussetzung vor, und die lokale IT weiß es natürlich
> wieder besser.

Umgekehrte Perspektive in langjähriger Erfahrung: Softwarehersteller 
gibt eine Mindestkonfiguration vor, die ungefähr dem entspricht, was man 
zu diesem Zeitpunkt als Server-Hardware zu vertretbaren Preisen auf dem 
Markt kriegt. Server-Admin weiss jedoch, dass in 3 von 4 Fällen nicht 
mal die Hälfte davon wirklich benötigt wird. Das schöne an 
Virtualsierung ist aber, dass man das jederzeit anpassen kann. Rauf wie 
runter, sofern insgesamt genug da ist.

von Peter II (Gast)


Lesenswert?

Jörg M. schrieb:
>> Wenn dir dein Autohersteller sagt, du sollte nur Super+Plus von Aral
>> Tanken machst du es dann?
>
> Wenn die Anforderung im Vertrag steht und ich etwas anderes tanke, dann
> ist das meine Verantwortung. Läuft etwas nicht, geht etwas kaputt und
> der Hersteller kann nachweisen, dass ich bei anderen getankt habe, dann
> bin ich der dumme.

aber es ist DEIN Auto, man kann damit machen was man will. Genauso mit 
Software. Klar darf ich mich nicht beim Hersteller beschweren wenn etwas 
nicht so läuft wie gedacht.

von Peter II (Gast)


Lesenswert?

SR schrieb:
> Da würde ich doch gar nicht drüber nachdenken - das Problem mit Hardware
> zu erschlagen (64GB reg ECC / DDR3) kosten derzeit rund 400 EUR - da
> kann man nicht viel länger als 4 Stunden versuchen das Problem zu lösen.

sehr eng gedacht, wenn ist wenn in den node schon 128GB drin stecken und 
alle Stecklätze voll sind?

Oder es kommen noch Lizenzkosten hinzu. Wenn es dann noch RAM von IBM 
sein muss wird es noch teuer. Wenn jemand bereit ist es zu zahlen, ist 
es die "einfachste" Lösung.

von (prx) A. K. (prx)


Lesenswert?

SR schrieb:
> Da würde ich doch gar nicht drüber nachdenken - das Problem mit Hardware
> zu erschlagen (64GB reg ECC / DDR3) kosten derzeit rund 400 EUR - da
> kann man nicht viel länger als 4 Stunden versuchen das Problem zu lösen.

Vorausgesetzt der VM-Host hat noch Platz dafür - hier geht es ja um eine 
VM. Das sind Geräte, die man heute lieber gleich mit 0,5TB RAM 
ausstattet. Aber bei locker mal 50-100 VMs drauf kriegt halt nicht jede 
VM ihre 64GB.

: Bearbeitet durch User
von Jörg M. (derlang)


Lesenswert?

Peter II schrieb:
> Jörg M. schrieb:
>>> Wenn dir dein Autohersteller sagt, du sollte nur Super+Plus von Aral
>>> Tanken machst du es dann?
>>
>> Wenn die Anforderung im Vertrag steht und ich etwas anderes tanke, dann
>> ist das meine Verantwortung. Läuft etwas nicht, geht etwas kaputt und
>> der Hersteller kann nachweisen, dass ich bei anderen getankt habe, dann
>> bin ich der dumme.
>
> aber es ist DEIN Auto, man kann damit machen was man will. Genauso mit
> Software. Klar darf ich mich nicht beim Hersteller beschweren wenn etwas
> nicht so läuft wie gedacht.

Korrekt, wenn man die Gewährleistung verlieren möchte, kein Problem. 
Habe ich oben auch nichts anders behauptet. Im geschäftlichen Bereich 
würde ich das Risiko für die paar Kröten nicht eingehen.

von Johannes M. (jojo20)


Lesenswert?

Problem ist hier wirklich der Hersteller, m.E. nach eine kleine Bude die 
es gerade so hinbekommt die Software ans laufen zu bekommen.

Die 64+32GB waren die minimal Anforderung! Wenn man dann sieht das auf 
dem Server der 32Gb braucht durch die Bank nur 3GB belegt sind kommt man 
sich schon etwas veräüüelt vor ;)

Und laut VMware ist bei der 64GB Maschine der Ram nie über "aktiven" 
8GB!

Die Software ist eine Abrechungssoftware für Strom/Gas/Wasser Anbieter 
und selbst bei der Jahresverbrauchsabrechnung für alle Kunden wurde 
nicht wirklich mehr Speicher benötigt!

von Der Andere (Gast)


Lesenswert?

Peter II schrieb:
> Es gibt Unternehmen die wirtschaftlich denken müssen, und ich habe schon
> einige male Herstellerangaben gesehen die viel zu viel überdimensioniert
> werden.

Wahrscheinlich aus leidvoller Erfahrung.

ich habe hier mindestens 1 Fall im Monat wo es mit bis zu 100 Einträgen 
im Hotlineticketsystem endet und die Ursache uralte viel zu kleine 
Hardware ist.

Extremstes Beispiel: Eine internationale Bank, Niederlassung in einem 
europäischen Land. Aufgabe Software die Millionen Kunden und 
Transaktionen bzgl. gesetzlichen Auflagen zu "Financial Crime 
Prevention" prüfen muss.
Der Kunde jammert alles ist so langsam, sie hätten einen 64 Core Rechner 
mit 256G RAM und unsere Software wäre so langsam ...
Das Thema war erst beendet, als ich dem Kunden mit einem Testprogramm 
zweifelsfrei nachweisen konnte daß sein Super Rechner etwa 1/3 der 
Rechenleistung eines 4 Jahre alten 800 Euro teuren Core I7 Desktop 
Rechner der nur auf einem thread belastet wird hatte.
Schon bei 2 parallelen Prozessen nahm die Summe der Rechenleistung bei 
dem Kundenrechner nicht mehr zu, und ab 4 paralleler Prozesse sogar ab.

Wie gesagt, ich sehe das hier regelmäßig.

Und ständig kommt der Vertrieb und die Beratungsabteilung und will dich 
auf deine Minimalanforderungen festnageln, bei einem mehrfachen als dort 
angegebenen Datenvolumen. Und der Kunde halbiert das dann noch mal.

Irgendwann setzt du deine Minimalanforderungen dann NATÜRLICH hoch.

von Der Andere (Gast)


Lesenswert?

Johannes M. schrieb:
> Und laut VMware ist bei der 64GB Maschine der Ram nie über "aktiven"
> 8GB!
>
> Die Software ist eine Abrechungssoftware für Strom/Gas/Wasser Anbieter
> und selbst bei der Jahresverbrauchsabrechnung für alle Kunden wurde
> nicht wirklich mehr Speicher benötigt!

Wenn das so ist, dann ist der Hersteller allerdings etwas Gaga mit 
seinen Anforderungen!

von Peter II (Gast)


Lesenswert?

Johannes M. schrieb:
> Und laut VMware ist bei der 64GB Maschine der Ram nie über "aktiven"
> 8GB!
>
> Die Software ist eine Abrechungssoftware für Strom/Gas/Wasser Anbieter
> und selbst bei der Jahresverbrauchsabrechnung für alle Kunden wurde
> nicht wirklich mehr Speicher benötigt!

dann muss du halt jemand finden, der das Risko eingeht zu sagen, wir 
verwenden mal mit 16GB ram und schauen was passiert.

Der Andere schrieb:
> Wie gesagt, ich sehe das hier regelmäßig.

ich sehen es halt von der Anwenderseite. Der Hersteller weiß oft nicht 
wie und in welchen Umfang ich die Software nutze. Wenn MS für Excel sagt 
es braucht mindestens 8GB ram, weil damit damit auch wirklich große 
Excel's mit Privot erstellen kann, ich mir aber sicher bin das ich das 
nicht mache, dann kann ich auch mit 4GB gut arbeiten.

von Peter II (Gast)


Lesenswert?

Johannes M. schrieb:
> Und laut VMware ist bei der 64GB Maschine der Ram nie über "aktiven"
> 8GB!

wie groß ist denn die Datenbank?

von Johannes M. (jojo20)


Lesenswert?

Laut SQL Server:

Größe: 111360MB

Wobei die Anfangsgröße schon bei 2 Files a 55GB festgelegt wurde.

Ich vermute es wird nicht alles mit Daten belegt sein.

von Peter II (Gast)


Lesenswert?

Johannes M. schrieb:
> Laut SQL Server:
> Größe: 111360MB
also recht wenig, dafür 64GB ram sehe ich auch als zu viel an. Es gibt 
einige die sagen 10% von der Datenbankgröße soll der Ram sein. Wir 
selber verwenden sogar noch weniger und es läuft sehr gut.

> Wobei die Anfangsgröße schon bei 2 Files a 55GB festgelegt wurde.
> Ich vermute es wird nicht alles mit Daten belegt sein.
doch, das wird schon aufgefüllt. Man könnte man über den Manager 
schauen, wie viel Frei ist.

von Peter II (Gast)


Lesenswert?

Nachtrag:

man kann aber auch mit einer 100Mbyte Datenbank 128GB Ram ausnutzen, 
wenn man seht ungeschicktes SQL macht.

von (prx) A. K. (prx)


Lesenswert?

A. K. schrieb:
> Server-Admin weiss jedoch, dass in 3 von 4 Fällen nicht
> mal die Hälfte davon wirklich benötigt wird.

VM-Host mit 384 GB RAM und ~120 VMs (128MB..16GB): 325 GB sind den VMs 
zugewiesen, nur 50 GB werden laut Hypervisor aktiv verwendet.

: Bearbeitet durch User
von Audiomann (Gast)


Lesenswert?

SIV64 kann das gut!

von Bernd K. (prof7bit)


Lesenswert?

A. K. schrieb:
> Vorausgesetzt der VM-Host hat noch Platz dafür - hier geht es ja um eine
> VM. Das sind Geräte, die man heute lieber gleich mit 0,5TB RAM
> ausstattet. Aber bei locker mal 50-100 VMs drauf kriegt halt nicht jede
> VM ihre 64GB.

Für genau dieses Problem wurden Container erfunden (gemeinsamer Kernel, 
gemeinsames RAM, isoliertes Userland, siehe z.B. LXC, Docker, etc). 
Gibts was vergleichbares nicht auch für Windows?

von (prx) A. K. (prx)


Lesenswert?

Bernd K. schrieb:
> Für genau dieses Problem wurden Container erfunden (gemeinsamer Kernel,
> gemeinsames RAM, isoliertes Userland, siehe z.B. LXC, Docker, etc).

Docker-Container sind eine feine Sache, aber kein genereller Ersatz von 
VMs. Selbst bei an sich gleichem Grundsystem.

> Gibts was vergleichbares nicht auch für Windows?

Docker gibts auch für Windows.

von Pandur S. (jetztnicht)


Lesenswert?

Ein Taskmanager Ersatz waere ProcessExplorer, im wahrsten Sinne. Zeigt 
viel mehr information wie der Taskmanager, hinunter auf Thread Ebene.

von David E. (Gast)


Lesenswert?

Hi,

wie viel RAM ein SQL Server nutzt kann schon vermessen werden. Ein Wert 
kann mit dem Windows Performance Monitor aufgezeichnet werden. PLE oder 
Page Life Expectancy beschreibt, wie lange die älteste Seite im 
Page-Buffer-Cache verweilt. D.h. solange der Wert nicht zu niedrig ist, 
ist alles OK.


Mal ein paar Queries und Infos zum Thema MSSQL und Memory:
https://sqlserverperformance.wordpress.com/2010/10/08/sql-server-memory-related-queries/

Du kannst auch die SQL Funktion "DBCC MEMORYSTATUS" nutzten um Info's 
über die Speicherauslastung im SQL Server zu bekommen.

Also wenn der PLE die ganze Zeit am wachsen ist und dir DBCC 
MEMORYSTATUS anzeigt, dass der SQL Server den RAM nicht komplett nutzt, 
kannst Du auch von den 64GB runter, oder dass du auch ggf. mehr 
brauchst, hängt von der Anwendung und der DB ab.

Bitte keine Pauschalen wie 10% Size der DB verwenden, messen ist besser.

bis dann
David

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.