VMWare auf 64Bit Debian 5 funktioniert nicht

Guten Tag,

System (Selbst-Bau-PC):

   # Intel C2Q Q9650 4x3.0GHz 2x6MB Cache
   # Corsair TWIN2X4096-6400C5, 4x2GB, DDR2-800, CL5
   # Western Digital Caviar Blue, 7200rpm, 16MB, 2x500GB, SATA-II
   # Club3D 8400GS, PCI-E, 512MB GDDR2, passiv, low profile
   # Asus P5QL PRO, Intel P43, Socket 775, 1333FSB

   # Debian 5, 64 Bit
   # VMware-Workstation-6.5.2-156735.x86_64[1]

Auf der Kiste liegen 4 Windows 2003 Server (32Bit) VM’s welche wir bisher mit der VM- Workstation gestartet haben (in vier Tabs, alle gleichzeitig). Alle 4 Win 2003 VM’s haben 1024 MB Speicher erhalten. Starte ich nun alle 4 VM’s benutzen diese zwischen 360 – 800 MB Speicher (gemäss WIn Task Manager). In der Debian Systemüberwachung zeigt aber nur 360 MB RAM Nutzung und 128 MB SWAP Nutzung an (SWAP Partition ist 8 GB gross). Die Resultate konnte ich mit $ top und $ free bestätigen. Das macht die Nutzung der Win 2003 Server brutal langsam (werden alle per Remotedesktop verwendet).

Nun habe ich folgendes C-Program geschrieben, um den Speicher mal richtig zu belasten.

#include 
#include 
int main()
{
 char \*c;
 while( 1 ) { c = (char\*) malloc ( 32767 ); }
 return 0;
}
$ g++ -Wall memtest.c –o memtest
$ ./memtest

INFO: die Nutzung von SWAP ist in der VM Konfiguration freigegeben.

Starte ich nun $ ./memtest, wenn VMware Workstation nicht läuft (mehrmals mit ctrl + z und $ bg auf Konsole) wir das RAM bis max. 25% genutzt und SWAP bis 100% (ist das ein Heap- bzw. Stack- Maximum?). Die Kiste ist trotzdem einigermassen noch zu bedienen.

Starte ich nun_$ ./memtest_, wenn VMware Workstation läuft (mehrmals mit ctrl + z und $ bg auf Konsole) wir das RAM bis100% genutzt und SWAP bis 100%. Die Kiste wird ziemlich langsam und die Bedienung benötigt geduld.

Mache ich das gleiche Spiel wenn die VM’s mit dem VM Player gestartet werden, wir kaum RAM/SWAP alloziert mit $ ./memtest, die Kiste ist aber kaum noch zu bedienen.

Was mache ich jetzt? So wie es aussieht, läuft VM Ware nicht richtig unter Debian 5 64 Bit. Es scheint den Speicher zwar zu reservieren, ihn aber nicht zu brauchen. Wie seht Ihr das? Was würdet Ihr als nächstes tun (bitte nicht: Kauf die ein 64 Bit Windows XY und verwende da VM …)

Die VW Workstation und die ganzen (Windows) Server Lizenzen waren nicht eben gratis … :frowning:

Vielen Dank für Eure Hilfe im Voraus.

Gruss, Olli

Hy,

Wie der name schon sagt geht es um Workstation. Das was Du betreibst ist eigentlich was für den ESXi Server. Diesen würde ich auch hier empfehlen (auf eben einer dedizierten Maschine).
Die VMs können problemlos rüberkopiert werden.

gruß
h.

Hallo h.

Wie der name schon sagt geht es um Workstation. Das was Du
betreibst ist eigentlich was für den ESXi Server. Diesen würde
ich auch hier empfehlen (auf eben einer dedizierten Maschine).
Die VMs können problemlos rüberkopiert werden.

Hm, das verstehe ich nicht ganz. Warum sollte ich ESXi verwednen, nur um 4 VM’s laufen zu haben?

Ich habe einen Laptop mit Windows Vista (32 Bit 4 GB RAM) mit der VMWorkstation für Windows (auch nicht gratis) und 2 x NT4 (jeweils 256 MB RAM), 1 x Win 2k (512 MB) und 1x Win XP (800 MB RAM). Da kann ich alle vier VM’s auf einmal laufen lassen und das funktionert (+/-) bestens. Wir brauchen das um alte Anlagen (Maschinen/Prozess Automation) immer noch betreuen zu können.

Die Win 2003 Server brauchen wir, damit mehrere Mitarbeiter per Remotedesktop an einem PRojekt arbeiten könn(t)en.

Ich bin kein Linux (und kein Winows, überhaupt kein IT) Crack, deshalb verstehe ich Deine Antwort nicht ganz.

Könntest Du mir das bitte noch ein wenig erläutern?

Besten Dank und Grüsse

Olli

Moien

#include
#include
int main()
{
char *c;
while( 1 ) { c = (char*) malloc ( 32767 ); }
return 0;
}
$ g++ -Wall memtest.c –o memtest
$ ./memtest

Das allokiert den RAM nicht wirklich. Das System reserviert zwar den RAM, merkt aber dass er nie benutzt wird. Deshalb wird er für scheintot erklärt und zum swap verschoben (je nach Kernel ganz ohne Zugriffe auf die Swap-Platte).

Bau ein memset rein. Dann wird es interessanter.

Zum eigentlichen Problem: bist du sicher dass die VMs komplett geladen wurden? Hast du nur die VM gestartet (aus dem Ruhezustand geholt) oder hast du wirklich Windows booten lassen? Hast du das ganze länger laufen lassen und gekuckt was sich dann so tut? Und könntest du mal „uname -a“ und top die ersten paar Zeilen posten?

MfG

Hallo,

Zum eigentlichen Problem: bist du sicher dass die VMs komplett
geladen wurden?

Ja

Hast du nur die VM gestartet (aus dem
Ruhezustand geholt) oder hast du wirklich Windows booten
lassen?

Booten lassen

Hast du das ganze länger laufen lassen und gekuckt was
sich dann so tut?

Ja, Win 2.3k Server werden immer langsamer. Speichernutzung (Linux) bleibt gleich.

Und könntest du mal „uname -a“ und top die
ersten paar Zeilen posten?

Hier läuft VM Workstation und ein frisch gebootetes Windows 2003 (verwendet zurzeit gemäss Taskmanager 480 MB RAM).

top - 16:18:20 up 4:18, 3 users, load average: 0.94, 1.35, 1.05
Tasks: 136 total, 1 running, 134 sleeping, 0 stopped, 1 zombie
Cpu(s): 7.4%us, 5.5%sy, 0.0%ni, 85.8%id, 0.2%wa, 0.3%hi, 0.9%si, 0.0%st
Mem: 8200300k total, 4560304k used, 3639996k free, 64896k buffers
Swap: 8385920k total, 224856k used, 8161064k free, 4000348k cached

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
 5947 administ 20 0 228m 5788 3828 S 20 0.1 8:10.32 gnome-vfs-daemo 
10562 administ 20 0 1437m 728m 718m S 10 9.1 15:20.40 vmware-vmx 
14116 administ 20 0 1451m 1.1g 1.1g S 9 14.2 1:09.71 vmware-vmx 
 5938 administ 20 0 173m 15m 11m S 6 0.2 0:48.18 vino-server 
 5939 administ 20 0 446m 31m 12m S 5 0.4 2:45.78 nautilus 
 5828 root 20 0 424m 55m 26m S 3 0.7 34:42.91 Xorg 
 9772 administ 20 0 412m 29m 9.8m S 1 0.4 0:56.70 vmplayer 
13289 administ 20 0 334m 62m 30m S 1 0.8 0:04.65 vmware 
14180 administ 20 0 220m 16m 10m S 1 0.2 0:00.26 gnome-terminal 
 7725 administ 20 0 301m 14m 9860 S 0 0.2 0:35.39 vmware-tray 
 1 root 20 0 10312 292 264 S 0 0.0 0:00.90 init 
 2 root 15 -5 0 0 0 S 0 0.0 0:00.12 kthreadd 
 3 root RT -5 0 0 0 S 0 0.0 0:00.22 migration/0 
 4 root 15 -5 0 0 0 S 0 0.0 0:03.58 ksoftirqd/0 
 5 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/0 
 6 root RT -5 0 0 0 S 0 0.0 0:00.06 migration/1 
 7 root 15 -5 0 0 0 S 0 0.0 0:06.80 ksoftirqd/1 

$ uname -a
Linux blabla 2.6.26-2-amd64 #1 SMP Mon Oct 19 02:34:17 UTC 2009 x86\_64 GNU/Linux

Vielen Dank!!!

Gruss, Olli

Moien

Hast du nur die VM gestartet (aus dem
Ruhezustand geholt) oder hast du wirklich Windows booten
lassen?

Booten lassen

OK, meine erste Vermutung war also falsch …

Und könntest du mal „uname -a“ und top die
ersten paar Zeilen posten?

Hier läuft VM Workstation und ein frisch gebootetes Windows
2003 (verwendet zurzeit gemäss Taskmanager 480 MB RAM).

  1. Verdacht: Geh mal in der VM-Workstation auf Edit -> Preferences, dann auf den Memory-Reiter. Ist der Modus „Fit all virtual machine memory into reserved host RAM“ aktiviert? (Workstation 6.x, richtig? in den alten Versionen geht das anders.)

Und dann setz noch in den .vmx Dateien aller VMs die Optionen:

sched.mem.pshare.enable = „FALSE“
MemTrimRate=0

VM-Workstation komplett töten, neu starten, nochmal versuchen.

Linux blabla 2.6.26-2-amd64 #1 SMP Mon Oct 19 02:34:17 UTC
2009 x86_64 GNU/Linux

Sieht auch normal aus.

cu

Hallo h.

Wie der name schon sagt geht es um Workstation. Das was Du
betreibst ist eigentlich was für den ESXi Server. Diesen würde
ich auch hier empfehlen (auf eben einer dedizierten Maschine).
Die VMs können problemlos rüberkopiert werden.

Hm, das verstehe ich nicht ganz. Warum sollte ich ESXi
verwednen, nur um 4 VM’s laufen zu haben?

auch wenn Du mir wiedersprechen wirst, aber Workstation ist nun mal für ca. 1-2 paralelle VMs gedacht. Mehr KANn gehen, aber das System ist dafür nun mal nicht ausgelegt.
Ihr versucht ein Serversystem auf einer Workstation mit einer Wokstationsoftware zu bauen. Das Soll geld sparen, tut es auch. Aber dann müsst Ihr eben auch mit den Einschränkungen leben, das eine Workstationsoftwatre mit mehreren (!) zugreifenden usern eben so viel last verbraucht, das das System auf das man zugreift eben nicht mehr vernünftig nutzbar ist. VMWare Workstation verwendet nun mal den gesammten Speicher, den es zu fassen bekommt.

Ich habe einen Laptop mit Windows Vista (32 Bit 4 GB RAM) mit
der VMWorkstation für Windows (auch nicht gratis) und 2 x NT4
(jeweils 256 MB RAM), 1 x Win 2k (512 MB) und 1x Win XP (800
MB RAM). Da kann ich alle vier VM’s auf einmal laufen lassen
und das funktionert (+/-) bestens. Wir brauchen das um alte
Anlagen (Maschinen/Prozess Automation) immer noch betreuen zu
können.

Naja, dann lass es auf Vista laufen wenn es so geht. Es ist zwar nach wie vor IMHO eine Not & bastellösung, aber wenns halt so klappt…

Die Win 2003 Server brauchen wir, damit mehrere Mitarbeiter
per Remotedesktop an einem PRojekt arbeiten könn(t)en.

Dir ist schon klar, das man das auf einem GB laufen lassen KANN, das aber je mehr user per RDP Applikationen ausführen auch die VM mehrere GB zusätzlich braucht?!

Könntest Du mir das bitte noch ein wenig erläutern?

Das habe ich oben (hoffentlich) versucht rüber zu bringen. Ansonsten könnte auch die Serverversion helfen, aber da diese nach der 5er Workstation version „nachgebaut“ wurde halte ich die ESXi Version (freie ESX Version) für die bessere Lösung. Hier ist die Speicherausnutzung bzw. verteilung eben optimaler für den mehrVM betrieb UND mehrbenutzerbetrieb geregelt.

Gruß
h.

1 Like

Hallo pumpkin,

  1. Verdacht: Geh mal in der VM-Workstation auf Edit ->
    Preferences, dann auf den Memory-Reiter. Ist der Modus „Fit
    all virtual machine memory into reserved host RAM“ aktiviert?

Ja, ist aktiviert. Wir haben auch schon (erfolglos) mit den anderen Optionen herum gespielt.

(Workstation 6.x, richtig? in den alten Versionen geht das
anders.)

Ja, 6.x

Und dann setz noch in den .vmx Dateien aller VMs die Optionen:

sched.mem.pshare.enable = „FALSE“
MemTrimRate=0

Habe ich gemacht. Hm, hat ein bisschen etwas gebracht. Das verwendete RAM steigt jetzt beim Booten der VM wenigstens ein paar Dutzend MB. Zuvor war gar keine Änderung feststellbar.

Noch etwas anderes. Wie Du vorgeschlagen hast, habe ich noch ein memset zu meinen memtest.c hinzugefügt. Dann habe ich folgende zwei Tests gemacht (mit einer VM Windows 2003 Server 3 GB RAM):

Test 1:

  1. VM Ware starten (ohne WM zu booten)
  2. Systemüberwachung starten (ca. 300 MB von 7.8 GB RAM belegt
  3. Konsole auf und $ ./memtest

-> RAM wir bis 7.4 GB belegt, SWAP wird immer grösser und grösser bis

Test 2:

  1. VM Ware starten
  2. Windows 2003 Server VM mit 3 GB RAM booten
  3. Systemüberwachung starten (ca. 384 MB von 7.8 GB RAM belegt
  4. Konsole auf und $ ./memtest

-> RAM wir bis 4.4 GB belegt, SWAP wird immer grösser und grösser bis

Miene Interpretation ist, dass VM Ware den Speicher zwar reserviert aber nicht verwendet. Wie siehst Du das?

Noch eine Frage: Woher weisst Du das von den Optionen, welche Du mir vorgeschlagen hast? Finde ich das in der Dokumentation? Wenn ja, wo?

Vielen Dank!

Grüsse, Olli

Hallo h.

Danke für Deine Ausführungen. Ich stimme dir ja zu - es ist eine Notlösung und es sollte Geld sparen …

Aber, es funktioniert ja nicht einmal mit einer VM, also muss das was faul sein.

Ich werde mir die ESXi mal ansehen. Die kostenlose Version kommt wahrscheinlich nicht in Frage, da kommerzielle Nutzung.

Dank und Gruss
Olli

Moien

  1. Verdacht: Geh mal in der VM-Workstation auf Edit ->
    Preferences, dann auf den Memory-Reiter. Ist der Modus „Fit
    all virtual machine memory into reserved host RAM“ aktiviert?

Ja, ist aktiviert. Wir haben auch schon (erfolglos) mit den
anderen Optionen herum gespielt.

Da wär ich jetzt Wetten drauf eingegangen. Das sieht so aus als ob die VMWare den maximalen Bedarf der Gastsysteme begrenzt. Und das ist die zentrale Option um sowas zu steuern.

sched.mem.pshare.enable = „FALSE“
MemTrimRate=0

Habe ich gemacht. Hm, hat ein bisschen etwas gebracht. Das
verwendete RAM steigt jetzt beim Booten der VM wenigstens ein
paar Dutzend MB. Zuvor war gar keine Änderung feststellbar.

Die Werte von free und der Systemüberwachung stimmen aber überein? Kannst du mal die Ausgabe für free vor und nach dem Start einer VM posten?

Und kannst du eine vmx-Datei posten oder per mail schicken?

-> RAM wir bis 7.4 GB belegt, SWAP wird immer grösser
und grösser bis

Die Reserve von 600MB ist normal, ja so in der Art soll das laufen.

  1. VM Ware starten
  2. Windows 2003 Server VM mit 3 GB RAM booten
  3. Systemüberwachung starten (ca. 384 MB von 7.8 GB RAM belegt
  4. Konsole auf und $ ./memtest

-> RAM wir bis 4.4 GB belegt, SWAP wird immer grösser
und grösser bis

Und deshalb glaube ich das die Anzeige in der Systemüberwachung nicht stimmt. Das ist so nicht konsistent. Man kann dieses Verhalten mit ein paar der komplexeren Speichereinstellungen unter Debian provozieren, aber der Laie tippt nicht zufällig die richtigen Commandos dafür ein … oder habt ihr etwas in /sys/ lustig Optionen durchgetestet?

Miene Interpretation ist, dass VM Ware den Speicher zwar
reserviert aber nicht verwendet. Wie siehst Du das?

Naja, irgendwo muss der Windows-RAM sein. In der Swap taucht er nicht auf, VMWare fährt ein eigenes Swapfile. Im RAM selbst scheint er auch nicht zu sein, sonst würde der RAM-Verbrauch angezeigt werden.

In deinem ps-Auszug ist der RAM ja da:

Mem: 8200300k total, 4560304k used, 3639996k free, 64896k buffers
Swap: 8385920k total, **224856k used, 8161064k free, 4000348k cached  
  
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND   
 5947 administ 20 0 228m 5788 3828 S 20 0.1 8:10.32 gnome-vfs-daemo   
10562 administ 20 0 1437m 728m 718m S 10 9.1 15:20.40 vmware-vmx   
14116 administ 20 0 1451m 1.1g 1.1g S 9 14.2 1:09.71 vmware-vmx**  

Die 2 VMware-Processe sind ja gut dabei und liegen keinenfalls im Swap (225MB used). Das past schon zu einer 1GB Windows VM.

Woher weisst Du das von den Optionen,
welche Du mir vorgeschlagen hast? Finde ich das in der
Dokumentation? Wenn ja, wo?

„Performance Best Practices and Benchmarking Guidelines“ für 6.5, zu finden auf dieser Seite: http://www.vmware.com/support/pubs/ws_pubs.html und irgendwie tief in den doc-Verzeichnissen der Installation.

An sich maximieren die 3 Punkte die Performance der VMs auf Kosten des RAM-verbrauchs. Da bei dir aber irgendwas prinzipelles mit dem RAM nicht stimmt haut das nicht so ganz hin.

VMWare Tools sind aber auf allen Gästen installiert? Und es liegt auch nicht an der Netzwerkgeschwindigkeit?

Was machen die Platten bei den ganzen Aktionen? Wild am rattern?

cu

Hallo pumpkin,

Kannst du mal die Ausgabe für free vor und nach dem
Start einer VM posten?

Vorher:

$ free
 total used free shared buffers cached
Mem: 8200300 2540160 5660140 0 165240 2027440
-/+ buffers/cache: 347480 7852820
Swap: 8385920 286548 8099372

top - 09:21:14 up 1 day, 21:21, 2 users, load average: 0.37, 1.22, 1.36
Tasks: 136 total, 1 running, 134 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.5%us, 1.8%sy, 0.0%ni, 93.4%id, 0.0%wa, 0.1%hi, 0.2%si, 0.0%st
Mem: 8200300k total, 2540636k used, 5659664k free, 165296k buffers
Swap: 8385920k total, 286548k used, 8099372k free, 2027620k cached

Nacher:

$ free
 total used free shared buffers cached
Mem: 8200300 5819532 2380768 0 166484 5209380
-/+ buffers/cache: 443668 7756632
Swap: 8385920 286380 8099540

top - 09:25:53 up 1 day, 21:25, 2 users, load average: 2.33, 1.81, 1.55
Tasks: 137 total, 2 running, 134 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.7%us, 28.6%sy, 0.0%ni, 66.2%id, 0.1%wa, 0.2%hi, 0.3%si, 0.0%st
Mem: 8200300k total, 5824156k used, 2376144k free, 166580k buffers
Swap: 8385920k total, 286380k used, 8099540k free, 5213392k cached

Und kannst du eine vmx-Datei posten oder per mail schicken?

siehe ganz unten …

oder habt ihr etwas in /sys/ lustig Optionen durchgetestet?

Nein ich wüsste nicht wie und wo … Laien eben … :wink:

irgendwas prinzipelles mit dem RAM nicht stimmt

Hm, denkst Du an ein HW Problem?

VMWare Tools sind aber auf allen Gästen installiert?

Habe ich geprüft und noch einmal neu installiert (gemäss http://www.vmware.com/support/ws55/doc/ws_newguest_t…). Keine Änderung feststellbar.

Und es liegt auch nicht an der Netzwerkgeschwindigkeit?

Nein, sollte nicht. Es ist auch langsam, wenn ich alles direkt auf dem Debian Rechner bearbeite. Auch arbeite ich heute per VNC von Zuhause aus über OpenVPN auf dem Debian Rechner, funktioniert ordentlich schnell.

Was machen die Platten bei den ganzen Aktionen? Wild am
rattern?

Nein die sind ruhig.

Vielen dank für Deine Hilfe!

Grüsse, Olli

#!/usr/bin/vmware
.encoding = "UTF-8"

config.version = "8"
virtualHW.version = "6"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
memsize = "3000"
MemAllowAutoScaleDown = "FALSE"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "Disk.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.present = "FALSE"
ethernet0.present = "TRUE"
usb.present = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
sound.fileName = "-1"
sound.autodetect = "TRUE"
displayName = "ABC"
guestOS = "winnetstandard"
nvram = "ABC.nvram"

scsi0:0.redo = ""
ethernet0.addressType = "static"
uuid.location = "56 4d 56 5b 18 1d 0e 94-f5 1a 87 d1 0b 97 4d 6a"
uuid.bios = "56 4d d8 54 2f b1 48 94-b8 dc 67 80 36 0b bb fb"
bios.forceSetupOnce = "FALSE"

ide1:0.autodetect = "TRUE"
tools.remindInstall = "FALSE"
ethernet0.Address = "00:0c:29:0b:58:09"


annotation = "Windows Server 2003 SP2 Standard Edition |0D|0AMit orig Lizenz|0D|0A|0D|0A|0D|0A- IE7|0D|0A- Adobe reader 8.0"

uuid.action = "keep"

ide1:0.startConnected = "TRUE"
tools.syncTime = "TRUE"
sound.startConnected = "FALSE"

workingDir = ""

extendedConfigFile = "ABC.vmxf"
virtualHW.productCompatibility = "hosted"
tools.upgrade.policy = "manual"

ethernet0.connectionType = "bridged"

pciBridge0.present = "TRUE"
ehci.present = "TRUE"
svga.autodetect = "TRUE"

pciBridge0.pciSlotNumber = "17"
scsi0.pciSlotNumber = "16"
ethernet0.pciSlotNumber = "32"
sound.pciSlotNumber = "33"
ehci.pciSlotNumber = "34"

sched.mem.sphare.enable = "FALSE"
MemTrimRate=0


vmotion.checkpointFBSize = "16777216"

checkpoint.vmState = ""

numvcpus = "2"

Hallo,

sched.mem.sphare.enable = „FALSE“
MemTrimRate=0

Okay, okay, da war ein Schreibfehler … :wink: die Korrektur hat aber nichts gebracht …

Gemäss http://vmfaq.com/entry/25/ und http://www.virtualization.info/2005/11/how-to-improv… habe ich folgende Linien hinzugefügt (ohne Schreibfehler):

MemTrimRate=0
sched.mem.pshare.enable = "FALSE"
mainMem.useNamedFile = "FALSE"

prefvmx.minVmMemPct = "100"

Ich finde, dass der Boot-Vorgang vom Windows 2003 Server tatsächlich schneller ist, auch das Anmelden. Starte ich danach aber ein Programm … uff … keine Rückmeldung.

Free zeigt immer nich -/+ buffers/cache: 453328 7746972 … :frowning:

In einem der Links steht auch noch etwas von „system timer kernel 2.6 1000 Hz … but not all distributions follow that …“. Wie finde ich raus, mit welcher Hz Zahl mein system timer konfiguriert ist?

Ich werde noch weiter recherchieren, üben, fluchen, testen … das übliche halt … :wink: wäre aber froh um weitere gute Tipps.

Grüsse,

Olli