[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