Jump to content
basstscho

MSSQL 2014 Express auf Server 2012R2 - Anwendung trotz geringer Systemauslastung langsam

Recommended Posts

Hallo zusammen,

 

wir haben eine kleine Webanwendung die auf IIS und MSSQL Express 2014 läuft. 

Der gesamten Anwendung habe ich eine eigene ESXi-VM mit 8 Kernen (1 Sockel, 8 Kerne) & SSD-Speicher spendiert. OS ist ein Server 2012 R2 - auf dem Server läuft sonst nichts. 

 

Leider läuft die Anwendung bei bestimmten Berechnungen alles andere als schnell. Da vom Hersteller kaum bis wenig Support kommt (Software ist aber fest gesetzt), probiere ich der Software über die Rahmenbedingungen zu etwas mehr Geschwindigkeit zu verhelfen.

Erste Vermutung sind bei DB-Anwendungen natürlich fehlende Indizes und damit eine hohe SQL-Auslastung. Bei Betrachtung der Einstellungen und des Leistungsmonitors des SQL ist mir aber nichts merkwürdiges aufgefallen. Aus meiner Sicht hat der SQL-Server nicht viel zu tun. Was mich wundert ist die CPU-Auslastung von nur ca. 10-12%. Dies deutet für mich bei 8 Kernen auf die Auslastung von nur einem Kern hin (100/8 = 12,5). Der Express 2014 sollte allerdings doch schon 4 Kerne unterstützen. Aber auch die anderen Prozesse (primär IIS Worker) sorgen für keine große Auslastung auf dem Server und lassen somit den Flaschenhals nicht direkt identifizieren.

 

Meine Vermutung liegt also weiterhin auf einer Beschränkung durch den SQL Express. Kann dies an der nicht möglichen parallelen Abarbeitung von Queries liegen? Würdet ihr daher eine Performance-Verbesserung bei einem Upgrade auf die Standard-SQL-Version sehen? Wie kann ich mich dem Grundproblem noch weiter annähern und Gewissheit erlangen? Der Server an sich fühlt sich sehr schnell an - man merkt ihm keine Last an.

 

Besten Dank für eure Einschätzung und viele Grüße,

Johannes

cpu.png

cpu2.png

mssql.png

Share this post


Link to post
Share on other sites

Hi basstscho

So wie ich das sehe, hat der  sql-server  min. 4gb speicher bekommen. 

Wie sieht dann die einstellung für MaxDop aus? Ist 0 oder vielleicht 1 eingestellt?

 

Du kannst auch sp_blitz verwenden um zu sehen ob da irgend welche viewes oder sp oder udf'S zu viel speicher brauch.

https://www.brentozar.com/blitz/

 

Vg

DerFrank

 

Share this post


Link to post
Share on other sites

Hallo Frank,

 

MaxDop ist auf 0 gestellt - sollte ich diesen Wert ändern? Bei 0 müsste es doch die größtmögliche Parallelität ergeben?

Den Serverarbeitsspeicher habe ich mindestens 8.000 und maximal 10.000 MB eingestellt. Augenscheinlich mehr als der SQL überhaupt benutzt (die Datenbank hat nur ca. 3GB).

 

Grüße,

Johannes

Share this post


Link to post
Share on other sites

Wieso kommt vom Hersteller kein Support? Der muss doch wissen, welche Querys durchgeführt werden und ggf. langsam sein können.

Ohne Herstellersupport kann es Schwierig werden.

Hast du mal den SQL Profiler angeschaut?

Share this post


Link to post
Share on other sites

Hi basstscho

Da du am anfang geschrieben hast, dass ihr da eine kleine web anwendung verwendet, frage ich mich ob der flaschenhals eher an der web anwendung sein könnte?

Kann sein muss aber nicht. Reich ja schon aus, das dort eine schleife läuft, die sehr lange geht bevor daten von server geladen werden... hm.. bin kein web entwickler. Vielleicht gibt es ja tools, die die web anwendung mal tracen kann.

 

Nur so eine iddee

 

Vg

DerFrank

Share this post


Link to post
Share on other sites

Hallo zusammen,

 

besten Dank für eure Rückmeldungen. Wir haben von unserem ERP-System noch einen "großen" Standard SQL-Server mit mehreren CPUs. Testweise habe ich die Datenbank mal auf diesen Server verschoben, um den Flaschenhals SQL-Server ausschließen zu können - Ergebnis: Auf dem Hostsystem der Web-Anwendung ist die CPU Last des SQL-Servers weg und die Auslastung der IIS-Worker gleich niedrig. Insgesamt läuft die Anwendung nicht schneller. Es ist also davon auszugehen, dass tatsächlich irgendwo die Programmierung langsam ist und dabei aber keine CPU-Last erzeugt. Da fällt mir spontan nur ein, dass da jemand ein Sleep o.ä, eingebaut hat. Eine andere Option sind evt. noch die IIS-Einstellungen.

 

Ich werde also um den Hersteller nicht herum kommen und hoffen, dass er sich doch dazu bereit erklärt die für ihn ausreichende Performance zu beschleunigen.

 

Danke und Grüße,
Johannes

Share this post


Link to post
Share on other sites

Du kannst ja trotzdem in die DB schauen und die Tabellenfelder auf Indizies prüfen. Würde mich nicht wundern, wenn es evtl. gar keine gibt. ;)

Share this post


Link to post
Share on other sites

Hmm, ich würde die vCPU mit ändern auf 2 x 4 oder ähnlich. Was sind für CPU im Server eingebaut? Wie ist das RAID-System beschaffen? Hast Du in misalignend geprüft? Welche Clustergröße hat die Datenpartition?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...