basstscho 10 Geschrieben 4. März 2019 Melden Teilen Geschrieben 4. März 2019 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 Zitieren Link zu diesem Kommentar
DerFrank 15 Geschrieben 4. März 2019 Melden Teilen Geschrieben 4. März 2019 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 Zitieren Link zu diesem Kommentar
basstscho 10 Geschrieben 4. März 2019 Autor Melden Teilen Geschrieben 4. März 2019 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 Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 4. März 2019 Melden Teilen Geschrieben 4. März 2019 Die Express Vesion nutzt nur 4 Kerne und 1 GB RAM: https://blog.officemanager.de/2012/01/sql-server-express-limits/ Bist Du sicher die Express Version installiert zu haben? Welche Build ist installiert? SELECT @@Version in einer Abfrage ausführen. https://buildnumbers.wordpress.com/sqlserver/#SQL2014 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 5. März 2019 Melden Teilen Geschrieben 5. März 2019 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? Zitieren Link zu diesem Kommentar
DerFrank 15 Geschrieben 6. März 2019 Melden Teilen Geschrieben 6. März 2019 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 Zitieren Link zu diesem Kommentar
basstscho 10 Geschrieben 6. März 2019 Autor Melden Teilen Geschrieben 6. März 2019 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 Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 6. März 2019 Melden Teilen Geschrieben 6. März 2019 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. ;) Zitieren Link zu diesem Kommentar
djmaker 95 Geschrieben 26. März 2019 Melden Teilen Geschrieben 26. März 2019 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? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.