[linux-l] Desktop Virtualisierung
Peter Ross
Peter.Ross at bogen.in-berlin.de
Do Nov 29 23:53:17 CET 2012
On Thu, 29 Nov 2012, Fabio Schmeil wrote:
> Ok. Bisher war meine Erfahrung mit Virtual Box eher das es sehr langsam
> ist und merklich eingeschränkt war was Performance angeht.
Ich benutze VirtualBox, um eine Linux-Anwendung (Zimbra Mail Server auf
Ubuntu Server) unter FreeBSD laufen zu lassen (alles andere läuft "native"
auf FreeBSD).
Es ist ein Mailserver für eine Firma mit 50 Accounts, und ich sehe
keinerlei Performance-Probleme, die mit VirtualBox zu tun haben.
Eventuell hast Du innerhalb der Virtuellen Maschine die "Guest Additions"
vergessen? Das macht was aus (sowohl unter VMware, was ich früher benuzte,
als auch mit VirtualBox).
In Sachen Performance habe ich bei allen bisher benutzten
Virtualisierungsumgebungen (VMWare, VirtualBox, XenServer) - und ich hatte
oft einen ganzen "Zoo" von Virtuellen Maschinen - keinerlei wirklichen
Unterschiede gesehen.
Es kann bei ordentlicher Last Timer-Probleme geben, die zu
Performanceverlusten führen. Die sind ärgerlich und schwer zu finden,
sollten aber in einer Desktop-Umgebung selten eine Rolle spielen.
[Der Rest ist daher wahrscheinlich daher für den ursprünglichen Frager
unwesentlich, er bezieht sich auf den Server-Enisatz]
In Server-Umgebungen können die einen schon wahnsinnig machen, da sie
sporadisch auftreten - und zu "verlorener Zeit" führen.
Es gibt halt nur einen Hardware-Zeitgeber, der der Maschine "den Takt"
gibt. Das ist ein hochpriorisierter Hardwareinterupt, der dann den
laufenden Kernel unterbricht und den Kernel "antreibt".
In einer Virtuellen Maschine wird der Taktgeber halt auch virtualisiert,
kann aber natürlich nicht durch einen echten Hardware-Timer getrieben
werden. Also ist es Software, und der Interruipt kann "verloren" gehen,
wenn die Maschine gerade was besseres zu tun hat.
Dann verliert die Virtuelle Maschine an Zeit und lastet die zugewiesenen
Resourcen nicht ordentlich aus. Innerhalb der Maschine sieht man das gar
nicht - da die Maschine gar nichts über die "verlorene Zeit" weiß, und so
top z.B. eine "ordentliche Performance" vorgaukelt.
Die verlorenen "Ticks" treten sporadisch auf, unter Last, sind von der Art
der Last abhängig und in einer Testumgebung selten zu finden. Nur, wenn es
"ernst" wird - z.B. tausende Leute gleichzeitig auf einen Webserver
zugreifen, und jeder gerade was anderes macht.
So kann sich das System ziemlich klebrig anfühlen. Ich habe knapp zwei
Jahre einen VMWare-getriebene Umgebung, die immer wieder unter dem Problem
litt, betrieben, und war wirklich froh, als ich da weg war. (Neben
Management-Problemen. Unter anderem hatten die Manager sich von Beratern
an VMWare "verkaufen" lassen und wollten von Problemen auf der Ebene
nichts wissen. Wir waren schließlich nur die Admins und nicht die
1000-Dollar-per-Tag-Berater..)
Für mich einer der Hauptgründe, heute den Kernel zu teilen, und
stattdessen System-Kapselung via FreeBSD-Jails zu implementieren.
Allerdings kann in einem FreeBSD-Jail nur ein anderes FreeBSD laufen, so
wie unter den hier auch erwähnten Linux-Containern nur ein Linux laufen
kann.
In der genannten Umgebung hätten wir die Separierung (die aus
Management-Gründen, nicht vordienlich zur Erhöhung der Sicherheit
erfolgte) auch ohne Virtuelle Maschinen erledigen können, es ist kein
Problem, ein Dutzend Tomcats auf einer ordentlichen Maschine laufen zu
lassen.
Schließlich sind Tomcats schon Java Virtual Maschines;-)
Es grüßt
Peter
Wenn du nicht weißt, was du tust - tu's mit Eleganz.
Mehr Informationen über die Mailingliste linux-l