Hallo
In unserer Business Software welche auf IIS/SQL-Server läuft, gibt es von lokalem PC zu VM im Rechenzentrume merkliche Performanceunterschiede. Dazu gibt es einen einfachen Performancetest direkt aus der Software. Bei einem Test werden zeurst 100 Insert/Delete in eine einfache Tabelle gemacht und danach 2000 mal Selects aus dieser Tabelle.
In .NET werden die Aufrufe aus Schleifen aufgerufen, es gibt also 100 einzelne Insert, 100 einzelne Deletes und 2000 Selects.
Auf der lokalen Umgebung braucht ein solcher Test zusammen rund 400ms, auf einer VM welche in einem Rechenzentrum steht, dauert der Test rund 1,3s. Die VM hat SSD-Disks angehängt und reine Disk-Tests sind auch gut. Die SQL-Befehle sind aber eh so einfach, dass da nicht viel auf die Disks geschrieben wird. Für Tests habe ich diese Abfragen in ein Konsole-Programm verschoben, ob so Probleme im IIS ausschliessen zu können.
Ich habe jetzt mal noch jede SQL-Abfrage mit Stopwatch im .NET gemessen und das gibt lokal rund 1000 Ticks bei Insert/Delete und 350 Ticks bei Select. Auf der VM sind die Werte rund 2,5 mal schlechter. Beides mal ist IIS/SQL-Server im gleichen Windows und Zugriff wird über Shared Memory gemacht.
Hat jemand eine Idee, wo das Problem liegen könnte? Im SQL-Profiler sind die Reads/Writes identisch, auf der VM sind nur einige wenige Abfragen in der gleichen Zeit aufgeführt, lokal sind das viel mehr.
Gruss Christoph
In unserer Business Software welche auf IIS/SQL-Server läuft, gibt es von lokalem PC zu VM im Rechenzentrume merkliche Performanceunterschiede. Dazu gibt es einen einfachen Performancetest direkt aus der Software. Bei einem Test werden zeurst 100 Insert/Delete in eine einfache Tabelle gemacht und danach 2000 mal Selects aus dieser Tabelle.
In .NET werden die Aufrufe aus Schleifen aufgerufen, es gibt also 100 einzelne Insert, 100 einzelne Deletes und 2000 Selects.
Auf der lokalen Umgebung braucht ein solcher Test zusammen rund 400ms, auf einer VM welche in einem Rechenzentrum steht, dauert der Test rund 1,3s. Die VM hat SSD-Disks angehängt und reine Disk-Tests sind auch gut. Die SQL-Befehle sind aber eh so einfach, dass da nicht viel auf die Disks geschrieben wird. Für Tests habe ich diese Abfragen in ein Konsole-Programm verschoben, ob so Probleme im IIS ausschliessen zu können.
Ich habe jetzt mal noch jede SQL-Abfrage mit Stopwatch im .NET gemessen und das gibt lokal rund 1000 Ticks bei Insert/Delete und 350 Ticks bei Select. Auf der VM sind die Werte rund 2,5 mal schlechter. Beides mal ist IIS/SQL-Server im gleichen Windows und Zugriff wird über Shared Memory gemacht.
Hat jemand eine Idee, wo das Problem liegen könnte? Im SQL-Profiler sind die Reads/Writes identisch, auf der VM sind nur einige wenige Abfragen in der gleichen Zeit aufgeführt, lokal sind das viel mehr.
Gruss Christoph