Applicazione "non supportata" in una macchina virtuale?


10

Abbiamo acquistato alcuni software da una piccola azienda, è un gestore del flusso di lavoro di contenuti video di Windows a 32 bit, c'è stata una certa personalizzazione da parte loro.

Abbiamo lavorato bene per oltre un anno eseguendo questo codice in una VM VMare ESXi 4.1u2 su W2K3EE-32-bit (questo è ciò su cui supportano l'esecuzione).

Quindi hanno aggiornato il loro codice circa un mese fa e abbiamo iniziato a vedere periodicamente uno dei vCPU agganciati al 100%, il secondo vCPU è abbastanza inattivo, diciamo il 5-7% - quindi abbiamo appena ipotizzato che il codice sia malamente collegato e li abbia contattati circa esso.

Sono tornati da noi dicendo che il loro codice non funziona in una macchina virtuale, conoscono questo requisito da circa 18 mesi e che vogliono che lo facciamo V2P. Dicono di vedere questo problema solo quando vengono eseguiti all'interno di macchine virtuali. Ho una telefonata con il loro programmatore senior programmato tra qualche ora per discutere.

Ora per fortuna abbiamo alcuni fisici su cui possiamo farlo, un po 'che richiede tempo ma fattibile.

La mia domanda tuttavia è che, dato che questa macchina virtuale non tocca direttamente alcun hardware, si trova su un host molto moderno e in realtà ha requisiti molto bassi (2 x vCPU, 4 GB, disco rigido di avvio da 20 GB, disco rigido di dati da 100 GB, singolo vNIC e nient'altro) potrebbe essere il problema con l'esecuzione in una macchina virtuale, se ce n'è uno?

Ovviamente lo sto perseguendo fortemente con loro, ma mi chiedevo solo se qualcun altro ha trovato un'applicazione normale, che in qualche modo si comporta male all'interno di una VM ma non su un fisico.


Entrambi i vCPU provengono dalla stessa CPU? Hai impostato che ogni vero core mappa direttamente su una vCPU? Stai facendo qualcosa di divertente come avere l'hyper-threading abilitato sulla tua CPU? Queste sono alcune domande che dovrebbero aiutare a risolvere qualsiasi cosa che possa causare loro un rallentamento da parte tua che puoi affrontare. Probabilmente avrai un'idea migliore dopo aver parlato con il programmatore senior o come affrontare i problemi che potrebbero sorgere dal farlo funzionare in una macchina virtuale o saprai per certo se lo stanno facendo male. Potrebbe essere che il codice sia scritto in Java.
Wilshire,

Sto lasciando che ESXi faccia la sua cosa in termini di pianificazione dei processi e su hyperthreading Xeons serie> 55xx non è considerato "divertente", funziona ed è molto utile - oh e .NET 3.5 del codice tra l'altro.
Chopper3

So che a quanto pare MySQL Cluster non funziona nemmeno "ufficialmente" in un ambiente virtualizzato. Motivo? Boh! : P
Ben Ashton,

Risposte:


3

Anche se non posso parlare per questo fornitore o il pacchetto software, ho lavorato per un grande fornitore (multinazionale), in cui uno dei pezzi di software che vendevano presentava problemi noti molto specifici durante l'esecuzione su VMware.

In questo caso, un problema potrebbe causare il deadlock del software e l'altro potrebbe causare il danneggiamento dei dati. Pertanto, ai clienti è stato consigliato di non eseguire il software in un ambiente virtuale. Alcuni lo facevano ancora, e in tutti i casi di cui ero a conoscenza, si sono imbattuti in uno o entrambi i problemi.

Quindi, sebbene sia raro, ci possono essere casi in cui il software non funziona come ci si aspetterebbe in VMware.

Mentre mi rendo conto che non aiuta direttamente il tuo problema, mostra che VMWare non è sempre il sistema perfetto.

Nota a piè di pagina: in questo caso il fornitore è stato in grado di lavorare con VMware per trovare risoluzioni (alcune correzioni di codice, alcune modifiche alla configurazione di VMWare) e ora hanno alcune indicazioni (molto specifiche) su come eseguire il software su VMWare.


Questo è esattamente il tipo di cosa di cui sono triste ma grato di sentire - mentre menziono Janne nella sua risposta, ci abituiamo così tanto alle cose che funzionano correttamente nelle macchine virtuali che trovare una serie così strana di circostanze mi ha lasciato un po 'sconcertato per essere onesto , quindi sentire da te che non sono solo in questo è confortante almeno. Non ho ancora sentito nulla di positivo dal fornitore del software, ma so che stanno esaminando il problema, non riesco a immaginare una soluzione per circa un mese, purtroppo. Grazie ancora.
Chopper 3

3

Con ESX v5 e il limite di Monster VM (32vCPU 1 TB di RAM), il numero di applicazioni che presentano problemi con la VM si sta riducendo. La maggior parte di quelli che ho sperimentato sono: - fare affidamento sul tempo per essere lineari (processi in tempo reale o app che devono avere un tempo lineare ... questo di solito può essere modificato) - app che causano molti interruzioni hardware o cambio di contesto

Nella maggior parte dei casi, dovresti essere in grado di chiedere al tuo rappresentante vmware di parlare con quei ragazzi. Credo che vmware abbia ancora un team di persone dedicate a far funzionare le cose (avevano un laboratorio di supporto proprio per questo nei primi giorni).

Per quanto riguarda una soluzione, ho avuto un problema simile con VM con un elevato utilizzo della CPU (ma l'host ha molte risorse CPU gratuite). Abbiamo risolto il problema migrando su un server con una CPU Nehalem e modificando il livello di compatibilità della CPU in EVC (se si dispone di un cluster con DRS / HA)


Grazie per la tua risposta - molto gentile da parte tua quando questa non è davvero una domanda in bianco e nero. I tuoi esempi sono molto utili, tornerò indietro ed esaminerò il cambio di contesto in particolare. Oh, e tutti i nostri server sono esattamente sulla stessa CPU (X5690) con EVC impostato in modo uniforme, ma grazie ancora.
Chopper 3

2

Ho riscontrato un problema simile con VMware ESX + Debian 6 + OpenLDAP 2.4.x (qualunque sia la versione esatta di OpenLDAP può essere acquisita ...).

Nelle operazioni quotidiane funziona bene, ma cose come l'importazione di un file LDIF di grandi dimensioni con circa 400000 voci sono molto lente (50-100 volte più lente rispetto ai server fisici). Anche con benchmark di lunga durata e ad alto volume tutto procede senza intoppi con un paio di millisecondi di tempo di risposta, ma a volte ci sono strani picchi che vanno da 500 a 25000 (!) Millisecondi.

Con i server fisici non sono in grado di riprodurre questi problemi. E sì, ho trascorso circa tre settimane cercando di isolare il problema, ottimizzando tutti i tipi di parametri dai parametri del sistema operativo ai valori slapd ai valori BerkeleyDB ... nulla ha aiutato.


Grazie mille per aver condiviso le tue esperienze, non posso dire di non trovare tutto questo un po 'strano - Sono un appassionato di virtualizzazione delle esperienze e sono così abituato a lavorare semplicemente che a trovare un'applicazione che faccia questo ha scosso le mie convinzioni in un certo senso, quindi è bello sapere che non sono in una posizione isolata. Grazie.
Chopper 3

1
Altri due esempi: Atlassian afferma che entrambi Jirae Confluencenon sono consigliati per essere eseguiti in un ambiente VM (ware). Deve esserci un modello per queste eccezioni, non ho ancora capito cosa potrebbe essere. La mia installazione OpenLDAP non richiede molta I / O (3 MB / s in scrittura e non troppi IOP in picchi durante il benchmark), utilizza forse il 20-40% di CPU e circa 150 MB di RAM. Non dovrebbe essere troppo difficile da gestire. Forse ha qualcosa a che fare con il threading, ma vmstat riporta che i cambi di contesto ecc. Sono al livello normale.
Janne Pikkarainen,

La mia teoria attuale è che questo ha qualcosa a che fare con il mantenimento del tempo del sistema operativo. VMware ha avuto tutti i tipi di strani problemi di clock in passato e anche ora a volte devi passare alcuni tsc=pitparametri alla moda durante l'avvio, e almeno OpenLDAP è MOLTO sensibile alla precisione dell'orologio di sistema. Forse dovrei rintracciare tutte le app problematiche e vedere se tutte usano pesantemente gettimeofday()o giù di lì.
Janne Pikkarainen,

Grazie ancora, hai ragione sul tempo in VM, è intrinsecamente ovunque, quindi lo capisco, ma non posso fare a meno di pensare che anche se fosse un problema sarebbe un problema molto rapido per i nostri fornitori sono in grado di individuare il loro codice, attenzione, in realtà non si tratta di un'applicazione sensibile al tempo, ma prende semplicemente i contenuti video e li elabora, hmmm. Grazie ancora.
Chopper 3
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.