{"id":4122,"date":"2011-07-19T07:15:00","date_gmt":"2011-07-19T05:15:00","guid":{"rendered":"http:\/\/www.borncity.com\/blog\/2011\/07\/19\/performanceprobleme-bei-der-virtualisierung\/"},"modified":"2021-01-12T16:15:47","modified_gmt":"2021-01-12T15:15:47","slug":"performanceprobleme-bei-der-virtualisierung","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2011\/07\/19\/performanceprobleme-bei-der-virtualisierung\/","title":{"rendered":"Performanceprobleme bei der Virtualisierung"},"content":{"rendered":"<p>Virtualisierung ist eine klasse Sache, um mehrere Betriebssysteme auf einer Hardware zu Produktions- oder Testzwecken zu fahren. Ich selbst nutze diesen Ansatz, um diverse Betriebssysteme f\u00fcr Tests auf einem Host einzurichten. Allerdings hatte ich seit l\u00e4ngerem das Problem einer sehr schlechten Performance bei der Virtualisierung. In diesem Beitrag m\u00f6chte ich einen Blick auf die Frage werfen, was man tun kann, wenn es Performanceprobleme bei der Virtualisierung gibt.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/9a2ddd6cf9744c1c9b7380c0d21c580e\" alt=\"\" width=\"1\" height=\"1\" \/>Eigentlich besch\u00e4ftige ich mich seit \u00fcber 10 Jahren mit dem Thema Virtualisierung, und 2001 ist mein erstes (und einziges) Buch \u00fcber VMware Workstation zu diesem Thema erschienen. In der Rubrik <a href=\"https:\/\/borncity.com\/blog\/category\/virtualisierung\/\">Virtualisierung<\/a> finden sich folgerichtig einige Beitr\u00e4ge zu Fragen rund um die Virtualisierung mittels verschiedener L\u00f6sungen (VMware, Virtualbox, VMLite, Win VPC).<\/p>\n<h2>Und was ist mit der Performance?<\/h2>\n<p>Allerdings gab es da eine Sache, \u00fcber die ich bisher nichts geschrieben habe: Die Frage nach der Performance virtueller Maschinen. Eigentlich sollte man ja problemlos zwei oder drei virtuelle Maschinen mit Gastsystemen aufsetzen und ausf\u00fchren k\u00f6nnen, ohne dass es Probleme gibt. Aber so richtig flott wollten die VMs bisher bei mir nicht laufen. Klar, eine VM in Virtualbox oder VMware Server oder VMware Workstation war nutzbar. Aber oft zuckelte das virtualisierte Gastsystem gem\u00e4chlich daher \u2013 jedenfalls war kein Vergleich mit realer Hardware m\u00f6glich. Dabei lagen mir die enthusiastischen Erfahrungen mancher \"Anwender\" bez\u00fcglich Virtualisierung diverser Server auf einer Hardware in den Ohren.<\/p>\n<p>In den Anfangstagen unter Windows XP mit 450 MHz Pentium-Maschinen und 750 MByte RAM schob ich die mangelnde Leistung auf die schwachbr\u00fcstige Hardware (aber es gab damals wenig besseres). Dann kam Windows Vista, 2 \u2013 3 GByte Arbeitsspeicher und eine DualCore-CPU. Da auch dort keine Virtualisierungsunterst\u00fctzung per Hardware vorlag, schob ich die mangelnde Leistung auf die softwarem\u00e4\u00dfig Virtualisierung. Nachdenklich wurde ich aber, als ich auf ein neues System mit QuadCore-CPU samt VT-Unterst\u00fctzung umstieg. Die SATA-Festplatte war mit satten 1 GByte ausgestattet und der Arbeitsspeicher auf 4 GByte aufger\u00fcstet. Da sollte die Virtualisierung der Gastsysteme doch recht flott \u00fcber die B\u00fchne gehen.<\/p>\n<p>War aber nicht, im Gegenteil. Unter 32-Bit-Windows 7 hatte ich teilweise massive H\u00e4nger und Aussetzer, sowohl im Gastbetriebssystem als auch auf dem Host. Ein Wechsel zu einem 64-Bit-Windows 7 schien kurzzeitig Abhilfe zu schaffen. Aber so richtig rund lief es nicht wirklich. Mikroh\u00e4nger schob ich auf fehlerhafte Chipsatztreiber, hatte ich doch unter [<a href=\"https:\/\/borncity.com\/blog\/2010\/03\/19\/stndige-freezes-in-windows-7\/\">2<\/a>] genau diese Erfahrung als Ursache ausgemacht. Nach Installation der korrekten Chipsatztreiber lief das Hostsystem auch einwandfrei. Nur bei der Virtualisierung gab es st\u00e4ndig Probleme. Mal startete die VM recht z\u00e4h, mal gab es Mikroh\u00e4nger bei Internet Explorer, Thunderbird oder anderen Windows 7-Anwendungen auf dem Host. Zwei oder mehr VMs parallel ausf\u00fchren war kaum m\u00f6glich.<\/p>\n<p>Irgendwie scheine ich dann bei meinen Experimenten zur Ursachensuche auf Abwege geraten zu sein. Nachdem ich Windows 7 mehrfach neu aufsetzte, hatte ich irgendwann sogar eine Situation, in der ich mit Windows Virtual PC, VMware Player 3 und VirtualBox 3.01 zwei oder drei VMs parallel mit nutzbarer Performance ausf\u00fchren konnte. Nach der Installation von Windows 7 mit integriertem SP1 rauschte ich aber wieder in die Situation, dass die Gast-Betriebssysteme und auch der Host massive Performanceprobleme zeigten. Der Wechsel zu einer alten Sicherung ohne SP1 schien das Problem zun\u00e4chst zu beseitigen, bis nach einer Updatereihe wieder Performanceprobleme auftraten.<\/p>\n<h2>Ursachenanalyse ist angesagt<\/h2>\n<p>Nachdem ich mit diversen Virtualisierungsl\u00f6sungen massive Performanceprobleme hatte, war guter Rat teuer. Die Vermutungen reichten von Hardwareproblemen \u00fcber fehlerhafte Konfiguration des Systems bis hin zu Konflikten durch Installation mehrerer Virtualisierungsl\u00f6sungen. Unter [<a href=\"https:\/\/borncity.com\/blog\/2011\/04\/28\/performanceprobleme-bei-vmware-workstation-7\/\">3<\/a>] hatte ich sogar einen Beitrag verfasst, der m\u00f6gliche Ursachen f\u00fcr VMware Workstation 7 skizzierte. Und nach diesen Ans\u00e4tzen hatte ich vermeintlich sogar partiell Erfolge \u2013 die sich aber als tempor\u00e4r erwiesen. Dadurch wurde mir hier das Thema Virtualisierung etwas verleidet, da ich auf dem Produktivsystem bei laufender Virtualisierung nicht mehr arbeiten konnte.<\/p>\n<p>Irgendwann kam ich auf die Idee, nicht mehr nach Virtualisierungsproblemen bei VMware, Virtualbox oder Virtual PC sondern globaler nach Performanceproblemen bei der Virtualisierung zu suchen. Und dabei stie\u00df ich auf die Fundstelle unter [1]. In einem White Paper beschreibt ein VMware-Mitarbeiter, wie man Performance-Probleme analysiert. Er trennt dabei das Ganze in vier Bereiche, die separat zu analysieren sind: CPU-Auslastung, Memory-Auslastung, Speicherzugriff auf Disk und Disk I\/O. So etwas hatte ich zwar auch unter [<a href=\"https:\/\/borncity.com\/blog\/2011\/04\/28\/performanceprobleme-bei-vmware-workstation-7\/\">3<\/a>] adressiert, aber nicht systematisch durchgezogen. Also auf ein neues \u2026.<\/p>\n<h3>Meine Diagnose Schritt f\u00fcr Schritt: CPU-Last und RAM-Belegung<\/h3>\n<p>Zuerst habe ich bei laufender virtueller Maschine nachgesehen, ob Speichermangel oder zu hohe CPU-Auslastung die Ursache sein konnten. Hierzu l\u00e4sst sich der Taskmanager mit der Registerkarte <em>Leistung<\/em> verwenden.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/eYY4pAj.jpg\" alt=\"Task-Manager: Leistung\" width=\"563\" height=\"587\" \/><\/p>\n<p>Mehrfache Messungen zeigten, dass die vier Kerne eigentlich nur selten ausgelastet waren und nicht der Grund f\u00fcr die Performance-Probleme sein konnten. Der verf\u00fcgbare Arbeitsspeicher war mit 4 GByte zwar nicht \u00fcppig, aber oft wurden 1 GByte und mehr als verf\u00fcgbar ausgewiesen. Gleiches Bild, wie es sich auch in der Vergangenheit darstellte. Das konnte nicht wirklich die Ursache f\u00fcr die H\u00e4nger und Freezes sein, denn ich hatte auch schon Probleme, wenn ich zwei Windows XP-Gastsysteme mit 512 MByte Ram oder Androids mit je 256 MByte RAM parallel laufen lie\u00df.<\/p>\n<h3>H\u00e4ngende Prozesse analysieren<\/h3>\n<p>Da mir Anwendungen wie der Internet Explorer sogar auf dem Host immer wieder kurzzeitig einfroren, habe ich den Ressourcenmonitor \u00fcber die gleichnamige Schaltfl\u00e4che der Registerkarte <em>Leistung<\/em> des Taskmanagers aufgerufen. Auf der Registerkarte <em>\u00dcbersicht <\/em>wird ein h\u00e4ngender Prozess mit roter Schrift angezeigt. Dann l\u00e4sst sich \u00fcber den Kontextmen\u00fcbefehl <em>Warteschlange analysieren<\/em> nachschauen, warum der Prozess h\u00e4ngt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/QxNOGle.jpg\" alt=\"Ressourcenmonitor: Prozess h\u00e4ngt\" width=\"560\" height=\"420\" \/><\/p>\n<p>In allen F\u00e4llen erhielt ich den Hinweis auf wartend auf E\/A (im Netzwerk oder sonst wo). Hier schob ich die Ursache erneut auf den Chipsatz- oder LAN\/WLAN-Treiber. Da aber die Treiber aktuell waren, f\u00fchrte dies nicht weiter.<\/p>\n<h3>I\/O-Analyse f\u00fcr Datentr\u00e4ger<\/h3>\n<p>Erst das White Paper unter [1] brachte mich zum Nachdenken. Ich hatte die Partition f\u00fcr die Virtualisierungsdateien auf dem Systemlaufwerk angelegt und die Probleme traten bei allen Virtualisierungsl\u00f6sungen auf. Also kam ich auf die Idee, die I\/O-Last bei Datentr\u00e4gerzugriffen zu analysieren. Auch diese Analyse l\u00e4sst sich auf die Schnelle mit dem Ressourcenmonitor durchf\u00fchren. Die Registerkarte <em>Datentr\u00e4ger <\/em>enth\u00e4lt die erforderlichen Angaben.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/0zykRjz.jpg\" alt=\"Datentr\u00e4gerauslastung\" width=\"644\" height=\"541\" \/><\/p>\n<p>Im obigen Bild l\u00e4sst sich erkennen, dass der VMware-Prozess eine gro\u00dfe I\/O-Last auf einem SATA-Kanal erzeugt, der die \u00dcbertragungskapazit\u00e4t sprengt. Dadurch steigt die I\/O-Warteschlangenl\u00e4nge auf 5 bis 10. Folglich erh\u00e4lt auch der Host nicht mehr gen\u00fcgend Bandbreite, um auf das Systemlaufwerk zuzugreifen. Die Ursache f\u00fcr meine Performanceprobleme war gefunden. M\u00fc\u00dfig zu erw\u00e4hnen, dass sich auch bei anderen Virtualisierungsl\u00f6sungen wie Virtualbox oder Windows Virtual PC ein \u00e4hnliches Bild zeigt.<\/p>\n<h2>Eine \u00fcberraschende L\u00f6sung<\/h2>\n<p>Nun war noch unklar, ob die Chipsatztreiber, Treiber der VMs oder sonst etwas den Flaschenhals darstellten. Denn immerhin hatte ich das System ja phasenweise so konfiguriert, dass trotz dieser Konstellation ein Arbeiten mit zwei oder drei VMs m\u00f6glich war.<\/p>\n<p>Da Windows 7 ohne Virtualisierung wie \"ein Champ\" funktionierte, kam mir eine Idee: Konnte es sein, dass die I\/O-Last einfach das Limit des SATA-Kanals \u00fcberschritt? Bevor ich wieder mit Neuinstallation, Chipsatztreiber-Aktualisierung etc. experimentierte, wollte ich mal einen anderen Ansatz testen. Ich verf\u00fcge \u00fcber eine externe SATA-Platte f\u00fcr Backups, die \u00fcber einen Datenhafen per eSATA eingebunden werden kann. Also habe ich diese kurzerhand an den eSATA-Anschluss geh\u00e4ngt und ein paar VM-Dateien auf diese Festplatte verschoben. Danach wurden die virtuellen Dateien in VMware Workstation eingeh\u00e4ngt und anschlie\u00dfend nacheinander mehrere VMs gestartet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.imgur.com\/XJw5bz8.jpg\" alt=\"\" width=\"615\" height=\"475\" \/><\/p>\n<p>Die obige Analyse der Datentr\u00e4gerzugriffe mit dem Ressourcenmonitor zeigt zwar erneut eine hohe I\/O-Last auf der zweiten Festplatte mit den Virtualisierungsdateien. Aber die erste Festplatte mit dem Systemlaufwerk hat noch freie Kapazit\u00e4t. Da beide Datentr\u00e4ger \u00fcber separate SATA-Kan\u00e4le angesteuert werden, ist dies unkritisch.<\/p>\n<p>Dieser Ansatz wirkte Wunder! Das Verhalten des Systems entsprach nun auch meinen Erwartungen: Der Host war weiterhin problemlos nutzbar und es konnten zwei, drei und mehr Gastbetriebssysteme parallel in VMware Workstation ausgef\u00fchrt werden. Die VMs bremsten sich zwar beim Start gegenseitig etwas aus und irgendwann gab es auch kurzzeitig Speicherengp\u00e4sse. Aber dies gab sich, sobald die Gastbetriebssysteme hochgefahren waren. Umschalten zwischen den G\u00e4sten, der Wechsel auf den Host, alles war pl\u00f6tzlich keine Problem mehr. Sobald ich zu einer VM umgeschaltet hatte, erhielt diese entsprechende Ressourcen und war problemlos zu nutzen.<\/p>\n<p>Ich f\u00fcr meinen Teil habe damit die L\u00f6sung f\u00fcr die Performance-Probleme auf dem konkreten System gefunden. Offenbar haben die Hersteller von Virtualisierungsl\u00f6sungen, angefangen von Microsoft \u00fcber VMware bis hin zu Oracle da ebenfalls keinen Blick darauf. Denn wie w\u00e4re es sonst zu erkl\u00e4ren, dass die g\u00e4ngigen Virtualisierungsl\u00f6sungen die Dateien neuer virtueller Maschinen standardm\u00e4\u00dfig auf dem Windows Hostlaufwerk erstellen wollen?<\/p>\n<p>Es mag sein, dass dies nicht auf allen Systemen ein Problem darstellt und die I\/O-Leistung der SATA-Kan\u00e4le samt Festplatten h\u00f6her sind. Aber im Nachhinein erinnere ich mich, bei Recherchen in VMware-Foren durchaus den einen oder anderen vagen Hinweis in diese Richtung gelesen zu haben. Der oben skizzierte Diagnoseverlauf zeigt mir auch, dass es mitunter ganz sch\u00f6n schwierig sein kann, die richtigen Schl\u00fcsse zu ziehen. Vermutlich habe ich vor lauter B\u00e4umen zeitweise den Wald nicht mehr gesehen und einfach zu stark in technischer Ausrichtung nach Fehlern in einem bestimmten Produkt bzw. in den Chipsatztreibern gesucht, statt mich ein paar Minuten hinzusetzen und die Randbedingungen sauber zu analysieren. Aber wie sagt schon Goethe \"Es irrt der Mensch, so lang er strebt\" \u2026<\/p>\n<p><strong>Links:<br \/>\n<\/strong>1: VMware Performance Monitoring to Avoid Slow VMs<br \/>\n2: <a href=\"https:\/\/borncity.com\/blog\/2010\/03\/19\/stndige-freezes-in-windows-7\/\">St\u00e4ndige \"Freezes\" in Windows 7<\/a><br \/>\n3: <a href=\"https:\/\/borncity.com\/blog\/2011\/04\/28\/performanceprobleme-bei-vmware-workstation-7\/\">Performanceprobleme bei VMware Workstation 7<\/a><br \/>\n4: <a href=\"http:\/\/communities.vmware.com\/docs\/DOC-3930\" target=\"_blank\" rel=\"noopener\">Performance Monitoring and Analysis<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Virtualisierung ist eine klasse Sache, um mehrere Betriebssysteme auf einer Hardware zu Produktions- oder Testzwecken zu fahren. Ich selbst nutze diesen Ansatz, um diverse Betriebssysteme f\u00fcr Tests auf einem Host einzurichten. Allerdings hatte ich seit l\u00e4ngerem das Problem einer sehr &hellip; <a href=\"https:\/\/borncity.com\/blog\/2011\/07\/19\/performanceprobleme-bei-der-virtualisierung\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,11,143,14],"tags":[1277,1276,4299],"class_list":["post-4122","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-problemlosung","category-tipps","category-virtualisierung","tag-analyse","tag-performanceprobleme","tag-virtualisierung"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/4122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=4122"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/4122\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=4122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=4122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=4122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}