8 Replies Latest reply on Jun 9, 2011 3:01 AM by Tinto1970

    Chi gestisce meglio lo SWAP: hypervisor o guest?

    Tinto1970 Master

      L'hypervisor crea nel datastore un file .vmdk che ha "swap" nel nome: lo usa per swappare temporaneamente su disco il contenuto della RAM fisica quando scarseggia, ad esempio se la somma della RAM di tutti i guest è più di quella fisica dell'host.

       

      Il s.o. guest usa una file di swap per svuotare la ram fisica (o che crede essere fisica) su disco.

       

      Domanda: è più efficiente se il sistema operativo guest fa swap o se lo fa l'hypervisor? Dipende anche, immagino, dal s.o. perché win lo swap in un certo modo lo usa comunque, linux lo inizia a usare solo se la ram fisica (o che crede essere fisica...) è esaurita...

        • 1. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
          ldelloca Master
          vExpert

          La risposta carogna sarebbe "meglio non swappare"..... :-)

           

          Anyway, la cosa è difficilmente gestibile, nel senso che le due cose funzionano indipendentemente una dall'altra.

           

          A naso, mi viene da pensare che essendo un livello di astrazione software, lo swapping che si genera nella ram del guest è peggio, quindi meglio usare lo swap di ESXi (oltretutto a breve potrebbe esserci una novità per meglio gestire questa cosa.....).

          Inoltre, in ESXi abbiamo anche page sharing e memory compression che aiutano al meglio a evitare swapping. Ci sarebbe anche il balloning, ma quella è un'ancora di salvezza per ESXi, non per la virtual machine.

           

          Ci sarebbe anche poi da fare un conto della serva anche qua: quanto mi costano oggigiorno un paio di banchi di ram, piuttosto che ore e ore di fine tuning?

           

          Ciao,

          Luca.

           

           

          --
          Luca Dell'Oca
          [Assegnare punti a una risposta utile è un modo di dire grazie]
          1 person found this helpful
          • 2. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
            Tinto1970 Master

            Anyway, la cosa è difficilmente gestibile, nel senso che le due cose funzionano indipendentemente una dall'altra.

             

            in modo un po' 'prepotente' (e, lo so, con qualche rischio...) si potrebbe togliere al guest la possibilita' di fare uno swap file, assegnare tanta RAM in modo che non ci sia swap se non in casi estremi.

             

            Sì è discorso un po' accademico

            • 3. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
              GiuseppeG Expert

              Accademico per accademico... una breve spiegazione di quando vsphere usa lo swap.

              L'hypervisor usa lo swap della memoria solo come ultima risorsa in caso la memoria libera dell'host scenda sotto il 2% (e dopo aver applicato tutte gli altri metodi per reclamare la memoria, ossia il transparent page sharing e il ballooning).

               

              L’uso dello swap da parte dell’hypervisor è “l’ultima spiaggia” in caso di necessità di recupero di memoria perche' e' il meccanismo che penalizza di più le performance delle VM sia perché’ il disco è più lento della memoria, sia perché può interagire in modo negativo con i meccanismi di gestione della memoria dei sistemi operativi guest delle VM:l’hypervisor non ha conoscenza di quali pagine siano da swappare e quali no (a livello di sistema operativo guest) e può quindi inficiare le politiche di gestione della memoria del sistema operativo guest. Inoltre quando una pagina viene riportata in memoria dallo swap dell’hypervisor, la VM resta bloccata fino al completo caricamento dal disco.

               

              Anche il sistema operativo guest usa lo swap file quando è in ristrettezze di ram ma conoscendo quale uso e' effettivamente fatto delle sue pagine di memoria, puo' scegliere in modo migliore quali pagine swappare e quali no, per cui questo swap risulta piu' efficiente in termine di penalizzazione dei processi attivi.

               

              E' questo il motivo per cui l'hypervisor usa il meccanismo di ballooning, che di fatto forza una paginazione a livello di sistema operativo guest, prima del meccanismo di swap: un modo tipico per un OS per decidere cosa swappare ad esempio è quello di swappare prima le pagine di memoria non usate da piu' tempo quindi che hanno meno probabilita' di essere usate, mentre lo swap dell'hypervisor deve per forza procedere "come uno schiacciasassi".

               

              Quindi, a parte la risposta "meglio non swappare" io considero piu' efficiente lo swap a livello di guest che a livello di hypervisor.

               

              Se vuoi approfondire come funziona la gestione della memoria in vsphere ti rimando a tre miei post in cui lo illustro per esteso (si, autopromozione )

               

              Giuseppe

              @gguglie

              http://virtualbyte.wordpress.com

              1 person found this helpful
              • 4. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
                ldelloca Master
                vExpert

                Ecco, stavo per scrivere "accademico mica tanto" ed è arrivato Giuseppe. Direi che la spiegazione perfetta l'ha già data lui :-)

                 

                Per ulteriormente "temperare le matite", tieni presente che ci sono scelte anche molto più estreme come quella di google, che ho adottato anche io in un paio di occasioni, con linux: nessuno swap. Se la macchina va in esaurimento, interverrà un'altra del cluster, ma per loro è peggio una macchina lenta che una macchina ferma. Certo, ovviamente lo dicono dall'alto del 1.5m presunti di server...

                 

                Nel "nostro" piccolo, in molti casi i parametri di kernel ottimizzabili via sysctl (ovvio, sto parlando di un sistema operativo serio, non quello di Redmond :-P) permettono di vedere cambi di performance notevoli. Già solo il parametro Swappiness ti può cambiare la vita...

                 

                Io continuo a restare del parere che se possiamo non swappare è meglio, visti i costi della ram :-)

                 

                Cmq, 10 punti secchi a Giuseppe!

                 

                Ciao,

                Luca.

                 

                 

                --
                Luca Dell'Oca
                [Assegnare punti a una risposta utile è un modo di dire grazie]
                • 5. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
                  drakpzone Enthusiast

                  Sottoscrivo in toto la risposta di Giuseppe. Lo swapping fatto dall'hypervisor e' per forza di cose meno efficente di quello del guest perche' nonha la visibilita' dei processi guest, e quindi agisce necessariamente come uno schiacciasassi. E' quindi da evitare come la peste, perche' in quanto 'ultima spiaggia', ha effetti di degrado delle performance su tutti i workload consolidati su quello specifico host.   PJ (@drakpz) vBastard

                  • 6. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
                    AndreTheGiant Guru
                    vExpert

                     

                    in modo un po' 'prepotente' (e, lo so, con qualche rischio...) si potrebbe togliere al guest la possibilita' di fare uno swap file, assegnare tanta RAM in modo che non ci sia swap se non in casi estremi.

                    Questo sarebbe un errore... almeno in ambiente VMware.

                    Ricordo che il baloon driver può richiedere al SO guest di liberare memoria vRAM.

                    E di solito questo comporta la paginazione a livello guest su disco (può anche non avvenire, la macchina guest ha pagine di memoria che possono essere semplicemente scartate, o area di cache che può essere convertita in pagine di memoria)... Chiaro se non c'è un pagefile (o uno swap in Linux) il baloon potrebbe non essere efficace.

                     

                    Andrea

                    • 7. Re: Chi gestisce meglio lo SWAP: hypervisor o guest?
                      ldelloca Master
                      vExpert

                      Questo thread sarà utilissimo da citare in futuro a chi continua a chiedere perchè mai dovrebbe installare i vmware tools, dicendo "tanto va tutto comunque" :-)

                       

                      Ciao,

                      Luca.

                       

                       

                      --
                      Luca Dell'Oca
                      [Assegnare punti a una risposta utile è un modo di dire grazie]