Newsgroup: it.comp.os.linux.sys
Titolo: [VMWARE] Host Linux Guest Windows, Lentezza scrittura su disco

Ciao a tutti,
sto diventando matto per avere performance decenti
nell'accesso al disco su macchine con Host Linux
e Guest Windows 2003 server.
Ambiente:
Host: Linux Cento 5.2 ( test sia su Hd SATA che SCSI , 4G RAM)
Guest Windowd 2003 Srv ( test da 1 a 3 Giga di ram assegnata )
Con l'installazione di default sia Vmware server 1 che 2
risultano mostruosamente lenti sia in lettura che in scrittura.
Ho provato diversi settaggi:
Kernel: elevator=deadline nohz=off clock=pmtmr nosmp noapic nolapic
MemTrimRate=0
Nulla
Unico miglioramento .. anche se di poco l'ho avuto montando i file vmem
in ram attraverso tmpfs:
mount -t tmpfs -o size=5G,nr_inodes=5k,mode=700 tmpfs /dev/shm
mainMem.useNamedFile = "FALSE"
tmpDirectory="/dev/shm"
In questo caso la lettura ï¿œ decente ( 31.7 MB/s ) ma la scrittura rimane 
quasi assente: ( dai precedenti 2.6 MB/s passo a 6 MB/s ) ( DiskTT ).
Se monto una macchina virtuale Linux con Wine, l'accesso al disco 
risulta Performante .. poco meno che sull' HOST.
Quindi il collo di bottiglia ï¿œ il Guest Windows.
I log di Vmware:
Oct 02 19:10:22: vmx| SCSI0:0: Command WRITE(10) took 1.290 seconds (ok)
Oct 02 22:32:27: vmx| DISKLIB-LIB   :numIOs = 100000 numMergedIOs = 9360 
numSplitIOs = 5759
Oct 03 10:19:05: vmx| DISKLIB-LIB   :numIOs = 150000 numMergedIOs = 
11514 numSplitIOs = 6311
Oct 03 10:21:07: vmx| LICENSE using: '/etc/vmware/license.vs.1.0-00'
Oct 03 11:10:24: vmx| SCSI0:0: Command WRITE(10) took 2.036 seconds (ok)
Oct 03 11:10:24: vmx| SCSI0:0: Command WRITE(10) took 2.053 seconds (ok)
Oct 03 11:10:24: vmx| SCSI0:0: Command WRITE(10) took 2.139 seconds (ok)
Oct 03 11:10:24: vmx| SCSI0:0: Command WRITE(10) took 1.685 seconds (ok)
Ho googolato per 3 giorni senza successo ...:-(
Avete qualche esperienza ?
Dimenticavo, se sul Guest Windows gira SQL server il problema diventa 
veramente rilevante !
Grazie mille
			        -- Yena --

Il Fri, 03 Oct 2008 11:52:42 +0200, Yena scriveva:
Y> Se monto una macchina virtuale Linux con Wine, l'accesso al disco 
Y> risulta Performante .. poco meno che sull' HOST.
Wine non è un virtualizzatore.
Y> Quindi il collo di bottiglia è il Guest Windows.
Se il collo di bottiglia fosse il guest significherebbe che non hai
installato i VMWare tools con i driver paravirtualizzati
Y> Avete qualche esperienza ?
Y> Dimenticavo, se sul Guest Windows gira SQL server il problema
Y> diventa veramente rilevante !
Prova a dare accesso diretto ad una partizione (mi pare sia supportato).
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

 quasi assente: ( dai precedenti 2.6 MB/s passo a 6 MB/s ) ( DiskTT ).
Ho provato questo DiskTT su qualche macchina virtuale. Su una 
windows2008 su vmware server 2 in scrittura arriva a 54 Mbyte/s. Il 
sottositema dischi non e` niente di speciale : due samsung spinpoint F1 
sata da 1TB in raid1 software. Quindi tu con dischi scsi dovresti avere 
prestazioni maggiori.
-- 
Vincenzo

 
Forse mi sono spiegato male, Winne � stato installato su un GUEST Linux 
per avere lo stesso parametro di confronto.
VMWare tools sono installati, c'� uan versione particolare o una 
configurazione per driver paravirtualizzati, come lo vedo ?
GRAZIE !
					-- Yena --

 prestazioni maggiori.
Si pensavo anche io :-)
				-- Yena --

 Wine non � un virtualizzatore.
Penso che intenda un os Linux come guest su VMWare su cui ha installato 
wine per far andare le stesse applicazioni che usa sul guest Windows 
Server, in pratica fa andare le stesse applicazioni su due guest, uno 
Linux e uno Windows, e vede la differenza.

Claudio ha scritto:

ESATTO

 ext3
Immaginavo. Allora vmware e` un pig riguardo alle richieste di i/o sul 
filesystem. Ext3 di default usa "data=ordered" che e` un po` pesante 
nelle operazioni di scrittura e ti puo` bloccare in presenza di un 
elevato numero di i/o su disco (tipico di vmware).
Per ovviare alla cosa basta montare la partizione in questione (in 
/etc/fstab) con le opzioni "nobh,data=writeback". Altre opzioni di 
ottimizzazione che non guastano sono "noatime,nodiratime,commit=60".
Ma sono minimali rispetto alle prime due.
Altra cosa che dovresti fare e` evitare un disco vmware con espansione 
dinamica (in "File options" devi scegliere "Allocate all disk space now").
-- 
Vincenzo

 dinamica (in "File options" devi scegliere "Allocate all disk space now").
Tutto esatto, infatti migliora, aggiungo per qualche malcapitato che 
dovesse avere i miei problemi i seguenti passi che mi hanno risolto la vita:
1) Upgrade a Vmware 2
2) Conversione macchine a versione 7 ( tramite il pannello web )
3) Riavvio macchine e con pazienza non taccare nulla finche Windows non 
abbia aggiornato tutti i nuovi driver ( sopratuttto quello SCSI .. 
fondamentale )
4) Riavvio .. quando torna su, installazione Vmware Tools aggiornati
    ATTENZIONE!! non invertire lo step 3 con il 4
5) Parametri x /etc/vmware/config :
...
....
tmpDirectory = "/dev/shm"
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE"
MemTrimRate = "0"
MemAllowAutoScaleDown = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "100"
In particolare tmpDirectory = "/dev/shm"
necessita lo spegnimento del server vmware e la creazione del tmpfs:
mount -t tmpfs -o size=4G,nr_inodes=5k,mode=700 tmpfs /dev/shm
dove "size" sarà quella relativa alla RAM che decidete di assegnare alle 
macchine virtuali in totale.
Per l'amministrazione .. retengo che l'interfaccia da Web sia ancora 
poco matura .. ma serve x lo step 2.
Trovo più comodo il:
VMware Infrastructure Client che trovare in: 
/usr/lib/vmware/hostd/docroot/client/VMware-viclient.exe
A livello di ottimizzazione dei dischi ho impostato:
echo “128” > /sys/block/sda/queue/nr_requests
echo "1024" > /sys/block/sda/queue/max_sectors_kb
e per la rete:
echo 256960 > /proc/sys/net/core/rmem_default;
echo 256960 > /proc/sys/net/core/rmem_max;
echo 256960 > /proc/sys/net/core/wmem_default;
echo 256960 > /proc/sys/net/core/wmem_max;
echo 0 > /proc/sys/net/ipv4/tcp_timestamps;
echo 4000 > /proc/sys/net/core/netdev_max_backlog;
echo 40960 > /proc/sys/net/core/optmem_max;
Come ultima cosa, se il vostro Hardware lo consente, ho trovato 
miglioramenti attivando la Paravirtualizzazione.
Ciao !
				-- Yena --

 poco matura .. 
Mi sembra che con l'uscita dell 2 finale le cose siano migliorate. Ad 
esempio ora la console funziona con il plugin su firefox.
Io non l'ho trovata particolarmente disastrosa, nel senso che mi 
permette di fare tutto quello che voglio. Non ho provato il viclient 
sotto windows. Ha delle possibilita` in piu` rispetto alla webui?
-- 
Vincenzo

 sotto windows. Ha delle possibilita` in piu` rispetto alla webui?
Direi che le funzionalità sono le stesse, anzi ha qualche cosa di meno, 
tipo la conversione delle macchinbe virtuali c'è solo via web.
Grazie !
				-- Yena --