problematische Anwendung, performance Analyse
Verfasst: 11.11.2011, 12:05
moin,
eigentlich ist das eine allgemeine Frage, da wir aber noch ESX4 betreiben, schreibe ich das hier rein.
Inzwischen virtualisiere ich seit 2004 (ESX2.0) und wir haben das hier zur IT Strategie gemacht. Ich sage das ist Strategie, weil das unternehmen statt 250 physische Server zu betreiben, nur 30 physische Server benötigt. In den 7 Jahren sind mir nur sehr wenige Anwendungen untergekommen, die merklich schlechter "performten" als auf physischer Hardware. Der Overhead bei Virtualsierung ist inzwischen recht gering, vielleicht sind die heutigen Server auch viel zu leistungsfähig für die Software. Das ist ja wohl auch der Hauptgrund warum wir virtualisieren können.
Wenn etwas virtualisiert nicht laufen wollte, dann lag das meist am Unwillen oder Unfähigkeit sich mit der Materie auseinander zu setzen. Meiner Erfahrung nach, lag das Problem aber fast immer an der Software und nicht an der Virtualisierung selbst.
Nun ist mit wieder eine Software untergekommen (Datawarehouse mit MSI), die nachweislich (muss die Aussage so hinnehmen), die virtualisiert wahrnehmbar schlechter läuft als auf Hardware.
Vor allem bei Webservern, die auf phyische DBs zugreifen habe ich das bemerkt.
Der Verantwortliche weigert sich deswegen zu virtualisieren (Grund: er hat keine Kenntnisse in Virtualisierung), die Bereitschaft zusammen eine Lösung zu finden ist etwas niedrig. Ich möchte von der politischen Problematik abgesehen, nun einen Weg zu finden diese Anwendung zu optimieren, ohne dass ich wirklich Kenntnisse dieser Anwendung habe.
So weit ich das bisher mit VMware Mitteln (im Wesentlichen Perfomance Reiter innerhalb des VCenters) und Task Manager innerhalb der VM ermitteln konnte, nutzt die VM die ihr zugewiesenen Reesourcen nicht aus (vCPUs und Ram), ich schließe deshalb erstmal aus, dass die VM zu klein dimensioniert wurde, oder die physischen Ressourcen nicht ausreichen. Auch der Host selbst zeigt keine Auffälligkeiten und ist bei weitem nicht ausgelastet.
Ich vermute die Probleme in den Netzwerklatenzen. Was ich bisher häufig sehen konnte, ist das Netzwerklatenzen im virtualisierten Netzwerk (Kommunikation über das physische Netzwerk ist notwendig) etwas höher sind. Wenn sich Requests gegen eine DB von 1 ms auf 2 ms verdoppeln, ist das im Einzelnen nicht dramatisch, macht die Anwendung aber 1000 davon, wartet der User zwei Sekunden statt einer.
Welche Ansätze habe ich hier?
- einen dedizierten vSwitch (mit eigener pNic) für diese eine VM?
wenn die Virtualisierungsschicht selbst die Ursache ist, wird dies nicht viel bringen.
- eine pNic direkt an die VM durchreichen (unter Umgehung des virtuellen Netzwerks)? Geht das? Habe ich nie probiert und kann auch auf die Schnelle nichts finden. Könnte das was bringen.
Welche Ansätze habt ihr, wenn Ihr vor solch einem Problem steht?
eigentlich ist das eine allgemeine Frage, da wir aber noch ESX4 betreiben, schreibe ich das hier rein.
Inzwischen virtualisiere ich seit 2004 (ESX2.0) und wir haben das hier zur IT Strategie gemacht. Ich sage das ist Strategie, weil das unternehmen statt 250 physische Server zu betreiben, nur 30 physische Server benötigt. In den 7 Jahren sind mir nur sehr wenige Anwendungen untergekommen, die merklich schlechter "performten" als auf physischer Hardware. Der Overhead bei Virtualsierung ist inzwischen recht gering, vielleicht sind die heutigen Server auch viel zu leistungsfähig für die Software. Das ist ja wohl auch der Hauptgrund warum wir virtualisieren können.
Wenn etwas virtualisiert nicht laufen wollte, dann lag das meist am Unwillen oder Unfähigkeit sich mit der Materie auseinander zu setzen. Meiner Erfahrung nach, lag das Problem aber fast immer an der Software und nicht an der Virtualisierung selbst.
Nun ist mit wieder eine Software untergekommen (Datawarehouse mit MSI), die nachweislich (muss die Aussage so hinnehmen), die virtualisiert wahrnehmbar schlechter läuft als auf Hardware.
Vor allem bei Webservern, die auf phyische DBs zugreifen habe ich das bemerkt.
Der Verantwortliche weigert sich deswegen zu virtualisieren (Grund: er hat keine Kenntnisse in Virtualisierung), die Bereitschaft zusammen eine Lösung zu finden ist etwas niedrig. Ich möchte von der politischen Problematik abgesehen, nun einen Weg zu finden diese Anwendung zu optimieren, ohne dass ich wirklich Kenntnisse dieser Anwendung habe.
So weit ich das bisher mit VMware Mitteln (im Wesentlichen Perfomance Reiter innerhalb des VCenters) und Task Manager innerhalb der VM ermitteln konnte, nutzt die VM die ihr zugewiesenen Reesourcen nicht aus (vCPUs und Ram), ich schließe deshalb erstmal aus, dass die VM zu klein dimensioniert wurde, oder die physischen Ressourcen nicht ausreichen. Auch der Host selbst zeigt keine Auffälligkeiten und ist bei weitem nicht ausgelastet.
Ich vermute die Probleme in den Netzwerklatenzen. Was ich bisher häufig sehen konnte, ist das Netzwerklatenzen im virtualisierten Netzwerk (Kommunikation über das physische Netzwerk ist notwendig) etwas höher sind. Wenn sich Requests gegen eine DB von 1 ms auf 2 ms verdoppeln, ist das im Einzelnen nicht dramatisch, macht die Anwendung aber 1000 davon, wartet der User zwei Sekunden statt einer.
Welche Ansätze habe ich hier?
- einen dedizierten vSwitch (mit eigener pNic) für diese eine VM?
wenn die Virtualisierungsschicht selbst die Ursache ist, wird dies nicht viel bringen.
- eine pNic direkt an die VM durchreichen (unter Umgehung des virtuellen Netzwerks)? Geht das? Habe ich nie probiert und kann auch auf die Schnelle nichts finden. Könnte das was bringen.
Welche Ansätze habt ihr, wenn Ihr vor solch einem Problem steht?