Come si mantiene un processo specifico fuori dalla memoria virtuale (ovvero paging)?


1

In Windows, il mio guest VM continua a essere messo nella memoria virtuale ... e quindi la VM si blocca ... perché la VM non è in grado di rispondere affatto. Aspetto addirittura 5 minuti e nessuna risposta dalla VM.

Come mantenere un processo specifico, in questo caso il processo associato alla VM, fuori dalla memoria virtuale?

La mia VM in genere si blocca ogni ora o così. Una stima del ballpark è che sto perdendo 10 minuti ogni ora ... a causa del riavvio della VM. Quindi qualsiasi aiuto sarebbe molto apprezzato.


AGGIORNAMENTO come da richiesta:

  • host: winxp-sp3-32-bit
  • host-memoria fisica: 3000 MB
  • ospite: fedora14-64-bit
  • assegnato dagli ospiti- 1400 MB
  • memoria host vista dal task manager quando il guest si blocca: ~ 100 MB in genere

Puoi provare che la VM viene inserita nella memoria virtuale e anche che questo è il problema? Per favore dicci qual è il tuo SO guest, quanta RAM è allocata all'ospite e quanto è gratis nel guest quando è in freeze e quanta RAM totale e RAM libera nell'host?
Spectre

Risposte:


1

Sono abbastanza sicuro su Windows che non puoi tenere un processo fuori dalla memoria virtuale. IIRC tutta la memoria a parte alcune aree del kernel di Windows può essere cercata. Non penso che questo sia il tuo problema, specialmente se il resto di Windows non risponde correttamente.


Quindi, se hai un file di paging, non puoi controllare dove risiede il processo se nella memoria virtuale / fisica?
Trevor Boyd Smith

Correggere, Windows farà del suo meglio per decidere per te - non è una situazione tutto o niente, le parti di una app che accedono frequentemente restano in ordine fisico, meno utilizzate verranno paginate. Se la VM realmente sta diventando aggressivamente paginata, è un segno che hai assegnato troppa memoria, o che il tuo sistema nel suo insieme non ne ha abbastanza. Dato WinXP a 32 bit con 3 GB di RAM, non assegnerei la VM a più di 1 GB.
Spectre

Oh, e un ospite a 64 bit su un host a 32 bit è (IMO) che richiede problemi, poiché l'app VM probabilmente deve emulare tutte le istruzioni a 64 bit a 32 bit e viceversa, il che potrebbe essere un collo di bottiglia. Prova a creare una VM Fedora a 32 bit e verifica se hai lo stesso problema. Inoltre, se si dispone di un processore con funzionalità di virtualizzazione (Intel VT e AMD-V iirc), assicurarsi che siano attivati ​​nel BIOS.
Spectre

Per tua informazione, una volta abilitata la virtualizzazione sul tuo mobo, fare un guest a 64 bit su un host a 32 bit non è un problema. Sia VirtualBox che VMWare implementano questa funzione in modo robusto. (è possibile navigare verso i rispettivi siti Web e visualizzare informazioni su questa funzione specifica).
Trevor Boyd Smith

Sono propenso a ... "Penso di aver assegnato troppo alla VM". Recentemente ho fatto marcia indietro sulla VM da 1400 a 1200 MB e non ho avuto il congelamento degli ospiti in più di un'ora. Dato che ho congelato ogni 30 minuti ed è passato più di un'ora, penso che il problema stia allocando troppa memoria.
Trevor Boyd Smith

-1

Imposta la dimensione del tuo file di pagina su 0 :) Saresti stupito di quanto funzioni il tuo sistema.

In XP,
Risorse del computer - & gt; Proprietà- & gt; Avanzate- & gt; Performance: Impostazioni- & gt; Avanzate- & gt; Memoria virtuale: Cambia- & gt; "Nessun file di paging" - & gt; Imposta- & gt; OK

Questo ovviamente influisce su tutti i processi, per quanto ne so non è possibile impedire lo scambio di memoria per un particolare processo. Come già detto nei commenti, non sono davvero convinto (basandomi sulla tua descrizione) che questo è ciò che sta accadendo alla tua VM.


1
c'è una buona discussione sull'opportunità o meno di usare il paging di Windows ... serverfault.com/questions/23621/... . Dato che ci sono troppi voti per "mantenere il paging alle impostazioni predefinite", continuerò a paginare.
Trevor Boyd Smith

Buona scoperta Non dimenticare che non esiste una soluzione globale per tutti. Tutto dipende da come si usa la macchina. Dovresti considerare di provarlo, anche se in seguito ripristini le vecchie impostazioni. Ho una macchina da 3 GB e corro senza file di pagina, e sono stato in grado di eliminare i problemi di prestazioni significativi in ​​tal modo. Ma devo guardare il mio uso totale di mem.
Code Bling

Sì, eviterei di disabilitare il file di paging, tutto ciò di cui hai bisogno è un processo illecito per mettere il sistema in ginocchio e non essere in grado di recuperare. Windows è abbastanza intelligente in quanto in alcune situazioni utilizza la RAM per mantenere una cache di sistema, anche se ciò significa memorizzare nella cache la memoria utilizzata in modo non frequente, in modo che le funzioni comuni del sistema operativo e le app avviate di frequente siano velocizzate.
Spectre

Disabilitare il file di paging potrebbe non funzionare, ma ancora una volta, non c'è nulla di male nel provare. Almeno saprai se questo è ciò che sta veramente causando il rallentamento della tua VM.
Code Bling

1
Cordiali saluti, la limitazione di Windows 3GB è causata da una "funzione" di Windows chiamata "ignorare la capacità PAE dell'hardware". Tutte le distribuzioni Linux a 32 bit possono avere 64 GB di ram (ma ogni processo a 32 bit è limitato a 2 GB di memoria).
Trevor Boyd Smith
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.