miichiii9
Goto Top

Microsoft SQL 2014 Langsam

Guten Abend miteinander

Ich habe ein Problem mit der geschwindigkeit im MSSQL 2014.

Das System:
HP ProLiant DL380 Gen9
2x Intel Xeon E5-2650 v3 2.3GHz
80GB RAM
HBA H241 Controller

HP MSA 2040 SAS
Raid5 mit 4x 900GB HDDs

Es sind auf dem Host 3 VMs im Betrieb.
1x Domain Controller
1x Exchange
und der MSSQL Server

Die SQL-VM hat 6vCPU und 16GB RAM.
Minimaler Serverarbeitsspeicher
10240 MB
Maximaler Serverarbeitsspeicher
10240 MB

Beim "Sperren von Seiten im Speicher" die SQL Gruppe hinzugefügt.

Die Frage ist wieso läuft der Arbeitsspeicher auf ca. 300MB?

Die Log-Auswertung hat folgende Fehler ergeben:

(Siehe Bilder)


Ich bin für jeden Hinweis oder Idee überglücklich...

Besten Dank und ein schönes Wochenende
Miichiii9
2
3
1

Content-ID: 315455

Url: https://administrator.de/contentid/315455

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

Vision2015
Vision2015 16.09.2016 um 20:07:48 Uhr
Goto Top
Zitat von @miichiii9:

Guten Abend miteinander
nabend face-smile

Ich habe ein Problem mit der geschwindigkeit im MSSQL 2014.
kannst du das mal besser beschreiben ?
wir wissen nichr was für dich schnell oder langsam ist!

Das System:
HP ProLiant DL380 Gen9
2x Intel Xeon E5-2650 v3 2.3GHz
80GB RAM
HBA H241 Controller
ok...

HP MSA 2040 SAS
Raid5 mit 4x 900GB HDDs
hmmm... scheint nicht genug E/A leistung zu haben...
die effiziente netzwerklast, datenträger-E/A und CPU-nutzung sind der schlüssel zu höchstleistungen...

Es sind auf dem Host 3 VMs im Betrieb.
1x Domain Controller
1x Exchange
und der MSSQL Server
nun- wie ist der Exchange ausgelastet ?
1 User... 1000.... 100000 User ?

Die SQL-VM hat 6vCPU und 16GB RAM.
Minimaler Serverarbeitsspeicher
10240 MB
Maximaler Serverarbeitsspeicher
10240 MB
hm... wie groß ist die DB ? passt die in den speicher ?
können die logs schnellgenug geschrieben werden ?
was sagt den der SQL Monitor ?

Beim "Sperren von Seiten im Speicher" die SQL Gruppe hinzugefügt.

Die Frage ist wieso läuft der Arbeitsspeicher auf ca. 300MB?
mit was ?

Die Log-Auswertung hat folgende Fehler ergeben:



Ich bin für jeden Hinweis oder Idee überglücklich...

Besten Dank und ein schönes Wochenende
Miichiii9


Frank
Pjordorf
Pjordorf 16.09.2016 aktualisiert um 21:53:58 Uhr
Goto Top
Hallo,

Zitat von @miichiii9:
Ich habe ein Problem mit der geschwindigkeit im MSSQL 2014.
Definiere Problem im Kontext von Geschwindigkeit - km/h meinst du sicherlich nicht.

Es sind auf dem Host 3 VMs im Betrieb.
Host ist was?

1x Exchange
Version?

Die SQL-VM hat 6vCPU und 16GB RAM.
Nun, wie klein/groß ist deine SQL Datenbank, passt da der RAM? Server OS ist was? Wie viele Instanzen laufen bei dir? Deine Informationen lassen auf ein Virtualisierer Typ 1 und 3 VMs, wobei die SQL VM wohl nur einen SQL Server und eine Instanz hat schliessen. ist dem nicht so?

Minimaler Serverarbeitsspeicher
10240 MB
Normal 0

Maximaler Serverarbeitsspeicher
10240 MB
Normal 2.147.483.647 MB. Warum hier rumspielen? Gibt es trifftige Gründe? Was hat eine Performance Analyse ergeben das du diesen Werte ändern tust?

Beim "Sperren von Seiten im Speicher" die SQL Gruppe hinzugefügt.
Ist die nicht Standardmäßig "nicht Konfiguriert" bzw. Deaktiviert? Was veranlasst dich dazu? Das Auslagern zu verhindern? Deine SQL VM hat doch 16 GB RAM, deine Datenbank(n)?

Die Frage ist wieso läuft der Arbeitsspeicher auf ca. 300MB?
Ich hab ein Rotes Auto, hat 5 Räder, 4 davon so angeordnet das diese die Erde berühren, Tank ist voll und Beifahrer(in) hat Sprechverbot. Warum fährt es manchmal nur 80 km/h?

Die Log-Auswertung hat folgende Fehler ergeben:
Ich kann keinerlei Fehler erkennen, nur eine Aufzeichung einzelner Parameter in einer bestimmten Zeit, welche einzeln betrachtet keine Rückschlüsse auf Fehler oder Verhalten deines Host zulassen.

Ich bin für jeden Hinweis oder Idee überglücklich...
http://www.sqlshack.com/dba-guide-sql-server-performance-troubleshootin ...
http://www.sqlshack.com/dba-guide-sql-server-performance-troubleshootin ...
https://www.mssqltips.com/sqlservertip/3328/sql-server-2014-real-time-qu ...
http://thomaslarock.com/2014/06/performance-metrics-for-sql-server-2014 ...

http://www.solarwinds.com/de/server-application-monitor?&CMP=KNC-TA ...
http://www.solarwinds.com/de/database-performance-analyzer-sql-server

Gruß,
Peter
miichiii9
miichiii9 18.09.2016 um 13:12:37 Uhr
Goto Top
Danke für die Antwort...

Es ist eine 10GB grosse Datenbank.
OS ist Windows Server 2012 R2

Diese enthält Daten einer Buchhaltungssoftware.
Auf dem alten System welcher nur 10GB RAM hatte lief alles flott...

Das Geschwindigkeitsproblem taucht immer bei einer Abfrage über zwei Tabellen auf.
Ansonsten werden die Abfragen schnell bearbeitet und ausgegeben.

Um einen Fehler in der Software und Datenbank auszuschliessen, habe ich diese auf ein Bare-Metal Windows Server 2012 R2 installiert.
Dort lief alles ohne Probleme...

Die Auswertung von HP direkt sagt, dass die Auslastung der MSA gering ist.

  1. show controller-statistics
Durable ID CPU Load Power On Time (Secs) Bps IOPS Reads Writes Data Read Data Written Num Forwarded Cmds Reset Time Total Power On Hours
3 2491286 15.4MB 497 156312920 208848154 5932.4GB 8924.2GB 0 2016-08-16 13:01:49 967.84

1 2491265 0B 0 0 0 0B 0B 0 2016-08-16 13:01:49 967.85

As seen in show controller-statistics Controller B is not being used.

Load on A Controller is minimal , never exceeds 20% ( CPU Load ).


Auf dem Exchange 2016 sind 19 Postfächer angelegt.


Der SQL-Monitor zeigt genauso wenig Auslastung an, wie der Task Manager.


Grüsse
Miichiii9
Pjordorf
Pjordorf 18.09.2016 um 23:58:00 Uhr
Goto Top
Hallo,

Zitat von @miichiii9:
Auf dem alten System welcher nur 10GB RAM hatte lief alles flott...
Und das alte System war ein was?

Das Geschwindigkeitsproblem taucht immer bei einer Abfrage über zwei Tabellen auf.
Mal die Abfrage analysiert?

Um einen Fehler in der Software und Datenbank auszuschliessen, habe ich diese auf ein Bare-Metal Windows Server 2012 R2 installiert.
Dort lief alles ohne Probleme...
Also Probleme erst seit der Virtualisierung? Ist beim SQL eher nichts neues das es dort ab und an mal etwas schwergängig ist. Das Internet ist voll davon und auch Lösungswege. Wichtig! Wie ist euer Virtualisierer Konfiguriert?
https://channel9.msdn.com/Events/community-germany/Cloud--Datacenter-Con ...

Gruß,
Peter
miichiii9
miichiii9 21.09.2016 um 17:19:02 Uhr
Goto Top
Hallo,

Die Abfrage ist nicht das Problem.
Es ist eine ERP-Software, und wenn ich einen Rechnungslauf tätige ist es langsam. Genauso wie bei einer Bilanz/Erfolgsrechnung.
Wenn ich allerdings die DB und die Softwaredateien auf einen Standalone Server kopiere ist das Problem weg.

Ich weiss nicht wo der Flaschenhals ist, aber an der Software liegt es nicht.

Grüsse
miichiii9
Pjordorf
Pjordorf 22.09.2016 um 11:14:30 Uhr
Goto Top
Hallo,

Zitat von @miichiii9:
Wenn ich allerdings die DB und die Softwaredateien auf einen Standalone Server kopiere ist das Problem weg.
Somit ist dein problemkind wohl der Hyper-V...

Ich weiss nicht wo der Flaschenhals ist, aber an der Software liegt es nicht.
Broadcom NICs im Hyper-V Host?
Den Beitrag von Nils Kaczenski ganz angeschaut und beachtet?
Hyper-V + SQL Server langsam
Hyper-V und Datenbanken - schlechte Performance
Netzwerkverbindung an Hyper-V Server extrem langsam (Fileserver - Servergespeicherte Profile)
http://serverfault.com/questions/643435/perfomance-of-sql-server-on-hyp ...
https://community.spiceworks.com/topic/459234-help-traffic-to-new-sql-20 ...
http://superuser.com/questions/755370/sql-2012-in-hyper-v-why-are-my-qu ...
https://social.technet.microsoft.com/Forums/windowsserver/en-US/a0842249 ...
Da gibt es noch mehr https://www.google.de/search?q=sql+server+2016+slow+on+hyper-v+2012r2

Gruß,
Peter
miichiii9
miichiii9 22.09.2016 um 11:22:28 Uhr
Goto Top
Hallo,

Besten Dank für deine Links...

Ich hatte gemeint gesagt zu haben, dass es sich um eine VMware Umgebung mit vCenter handle, habe allerdings gesehen das ich dies nicht erwähnt habe...


Grüsse
Miichiii9
Pjordorf
Pjordorf 22.09.2016 um 11:47:39 Uhr
Goto Top
Hallo,

Zitat von @miichiii9:
Ich hatte gemeint gesagt zu haben, dass es sich um eine VMware Umgebung mit vCenter handle, habe allerdings gesehen das ich dies nicht erwähnt habe...
Na dann einfach https://www.google.de/search?q=sql+2014+slow+vmware
Bleibt genug Lesestoff übrig (ca. 2.620.000 Treffer)

Gruß,
Peter
miichiii9
miichiii9 22.09.2016 um 15:31:07 Uhr
Goto Top
Und wie ist es mit den NICs?

E1000e, E1000 oder VMXNET3?

Gruss
Miichiii9
miichiii9
miichiii9 27.09.2016 um 08:19:57 Uhr
Goto Top
Ich habe nun die NICs auf E1000e ungestellt...

Läuft besser aber nicht optimal...


Grüsse
Miichiii9
GrueneSosseMitSpeck
GrueneSosseMitSpeck 26.11.2019 aktualisiert um 14:39:37 Uhr
Goto Top
E1000E bitte nur mit Orignal Intel Treiber, der von Microsoft taucht nix. Nie im leben nicht, der hat Latenzen ohne Ende. VMware empfiehlt aber VMXNET3 zu nehmen, dumm nur daß VMware den nicht immer mit optimalen Einstellungen liefert. Bei ESX 6.0 muß man das RSS mal toggeln (also die Einstellung invertieren), beim 6.5 spinnt das TCP checksum offload wenn es falsch eingestellt ist.

Und ansonsten würde ich mal gucken was der Storage macht.
-> Windows Perfmon aufmachen
dort die Performancecountergruppe physical Disk suchen, und alles weiter bezieht sich auf die beiden Laufwerkte wo die TempDB und die Datendatei der Datenbank liegt. und falls das vollständige Wiederherstellungsmodell eingestellt ist auch die Logdatei.
und da guckt man sich mal an:
avg bytes per read (muß genau 64KB sein ansonsten ist der Storage falsch konfiguriert)
avg bytes per write (dito)
transactions per second - sollte schön in Peaks auch in den 5000er Bereich vordringen können, sieht das gekappt aus dann liegt das am Storage

avg sec per read (die Latenzen beim Lesezugriff, idelaerweise < 20 ms)
avg sec per write sollten < 20 ms sein
read queue length
write queue length - beide queues sollen eigenltich < 10 sein

bei der CPU dann noch die interrupt time / CPU time für den Prozeß des SQL SErvers
wenn nennenswerte Zeiten bei Interrupt time auflaufen dann wartet der SQL sErver auf Daten die nicht rechtzeitig geliefert werden. In dem Prozeßmodell des SQL Servers wird dann halt mit hoher Frequenz kontrolliert ob ein Datenpaket eingetroffen ist. Da sich die Verarbeitungszeit daran anschließt bedeutet daß hohe Interupt Zeiten die Verarbeitung von SQL-Befehlen erheblich verlängert, denn bei Interrupt time passiert nichts außer daß die CPU heiß auf Daten wartet.