From Fedora Project Wiki

No edit summary
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{old}}
= KSM =
= KSM =


== Sommario ==
== Sommario ==
Consentire alle macchine virtuali KVM guest, di condividere identiche pagine di memoria. Ciò è particolarmente utile quando multipli guest sono in esecuzione dalla medesima o similare immagine del S.O. base. Poichè la memoria è condivisa, la memoria combinata usata dai guest risulta ridotta.
Consentire alle [[it_IT/Tools/Virtualization | macchine virtuali KVM guest]], di condividere identiche pagine di memoria. Ciò è particolarmente utile quando multipli guest sono in esecuzione dalla medesima o similare immagine del S.O. base. Poichè la memoria è condivisa, la memoria combinata usata dai guest risulta ridotta.


== Progettista ==
== Progettista ==
Line 9: Line 10:
* Email: [mailto:jforbes@redhat.com jforbes@redhat.com]
* Email: [mailto:jforbes@redhat.com jforbes@redhat.com]


== Stato corrente ==
== Stato attuale ==
* Release: [[Releases/12|  Fedora 12]]  
* Rilascio: [[Releases/12|  Fedora 12]]
* Ultimo aggiornamento: visita [[Features/KSM#Current_status | (en-wiki)]]
* Per informazioni aggiornate sullo stato di ''KSM'' consultare la [[Features/KSM#Current_status | pagina originale]].
* Completato


== Descrizione dettagliata ==
== Descrizione dettagliata ==
Il concetto di memoria condivisa è molto comune nell'architettura dei S.O. Per esempio, quando si avvia un processo per la prima volta, esso condivide tutta la memoria con il processo genitore. Quando il processo genitore o figlio modificano una parte della memoria, il kernel alloca una nuova regione della memoria, copia i contenuti originali e permette al processo interessato di modificare la nuova regione di memoria. Questa operazione è denominata ''copy on write'' (o copia in caso di scrittura).
Il concetto di memoria condivisa è molto comune nell'architettura dei S.O. Per esempio, quando si avvia un processo per la prima volta, esso condivide tutta la memoria con il processo genitore. Quando il processo genitore o figlio modificano una parte della memoria, il kernel alloca una nuova regione di memoria, copia i contenuti originali e permette al processo interessato di modificare la nuova regione. Questa operazione è denominata ''copy on write'' (o copia in caso di scrittura).


KSM è una nuova caratteristica di Linux che riprende questo concetto. Esso abilita il kernel a bloccare i due processi (genitore&figlio) in esecuzione per confrontare la loro memoria. Se le zone di memoria sono esattamente identiche, il kernel combina le due regioni in una e le segna per la copy on write.
KSM è una nuova caratteristica di Linux che riprende questo concetto. Esso abilita il kernel a bloccare i due processi (genitore&figlio) in esecuzione per confrontare la loro memoria. Se le zone di memoria sono esattamente identiche, il kernel combina le due regioni in una e le segna per la copy on write.


 
Questa strategia di ottimizzazione si rivela particolarmente utile con KVM. Quando sono avviate macchine virtuali guest, essi possono ereditare soltanto la memoria del processo genitore, <code>qemu-kvm</code>. Inoltre, è il contenuto dell'immagine del S.O. guest che verosimilmente dovrà essere condiviso. KSM, quindi consente a KVM di segnare queste identiche regioni guest come condivise.
 
This is especially useful in the case of KVM. When guest virtual machines are started, they can only inherit the memory of the parent <code>qemu-kvm</code> process. However, it is the contents of the guest operating system image which has the data which is most likely to be shareable. KSM allows KVM to request that these identical guest memory regions be shared.


== Vantaggi per Fedora ==
== Vantaggi per Fedora ==
Con questa caratteristica Fedora potrà eseguire macchine virtuali guest in uno spazio di memoria potenzialmente molto più efficente. Ciò vorrà dire che le macchine host Fedora saranno capaci di ospitare più guest di prima.


With this feature Fedora will be able to run guest virtual machines in a potentially much more memory efficient manner. This will mean that Fedora host machines will be capable of hosting more guests than before.
== Documentazione ==
 
== Scope ==
 
The main effort here is the kernel support. Since it is not going to make 2.6.31, we need to consider backporting it once the userspace API has been declared stable. KSM is a pretty well self-contained memory management feature, so backporting should be straightforward.
 
Once the kernel support is available, a minor patch for <code>qemu-kvm</code> is required to enable the memory sharing.
 
An open question is whether KSM will be enabled for all guests by default. If not, support for enabling it will need to be added to libvirt, virtinst, virt-manager etc.
 
== How To Test ==
 
* Ensure you are using <code>kernel >= 2.6.31-0.94.rc4.fc12</code> and <code>qemu-kvm >=0.10.92-4.fc12</code>
* Install two or more virtual machines and run them
* KSM is enabled by default, but limited to 2000 kernel pages.  It is recommended that this be set to a more sane value with the ksm service <code> chkconfig ksm on </code>
* Check whether pages were merged using <code>/sys/kernel/mm/ksm/pages_shared</code>
* Optionally turn on the ksmtuned service which dynamically controls ksm in response to what is happening on the host at any given time with <code> chkconfig ksmtuned on </code>
 
== User Experience ==
 
Users running multiple, but similar, KVM guests should experience a reduction in memory usage when KSM is enabled.
 
Fedora's kvm comes with 2 services controlling the behavior of ksm. One, simply called ksm, is just a nice means to start and stop ksm's kernel thread. The other, called ksmtuned, controls the first service and tunes
its parameters according to the memory stress that is generated by KVM virtual machines. ksmtuned may
stop ksm service alltogether, if memory is not in need. Later, if ksmtuned senses that memory stress has risen, it will fire up ksm again.
 
== Dependencies ==
 
Getting KSM accepted for 2.6.32 and the API declared stable.
 
== Contingency Plan ==
None needed, if KSM is not implemented guests will still work as they do now, without the advantage of a reduced memory footprint.
 
== Documentation ==
 
* Kernel [http://lkml.org/lkml/2008/11/16/315 patch submission]
* Kernel [http://lkml.org/lkml/2008/11/16/315 patch submission]
* [http://lkml.org/lkml/2009/6/8/330 Agreement] to defer until 2.6.32
* [http://lkml.org/lkml/2009/6/8/330 Agreement] da riferire fino alla 2.6.32
* Current [http://lkml.org/lkml/2009/6/29/221 madvise rollup]
* Current [http://lkml.org/lkml/2009/6/29/221 madvise rollup]
* Posted [http://lkml.org/lkml/2009/7/17/163 KSM rollup]
* Posted [http://lkml.org/lkml/2009/7/17/163 KSM rollup]
* Izik's [http://www.mail-archive.com/kvm@vger.kernel.org/msg19964.html qemu-kvm patch]
* Izik's [http://www.mail-archive.com/kvm@vger.kernel.org/msg19964.html qemu-kvm patch]


== Release Notes ==
== Altre informazioni ==
 
Per:
Fedora 12 adds KSM (Kernel SamePage Merging) which allows identical memory pages to be merged by the kernel into a single page. This is initially used by KVM to allow multiple, but similar, guest virtual machines to have a reduced memory footprint.  To enable KSM, it is recommended that you turn on the ksm service with 'sudo chkconfig ksm on' to set up limits appropriate for your system.  For additional tuning with a large number of guests, the ksmtuned service can be enabled with 'sudo chkconfig ksmtuned on'.
* Obiettivi
 
* Test Plan
== Comments and Discussion ==
* Esperienza Utente
 
* Dipendenze
* See [[Talk:Features/KSM]]
* Progetto corrente
* Note di rilascio
* Commenti e Discussioni
visitare la en-wiki [[Features/KSM| Features: KSM]]


[[Category:Italiano]]
[[Category:F-12 Features IT|{{SUBPAGENAME}}]]
[[Category:Virtualization IT|{{SUBPAGENAME}}]]
[[Category:FeatureAcceptedF12]]
[[Category:Virtualization|KSM]]
[[Category:Virtualization|KSM]]
[[Category:FeatureAcceptedF12]]
[[Category:F12_Virt_Features|KSM]]
[[Category:F12_Virt_Features|KSM]]

Latest revision as of 14:00, 19 January 2016

Old page
This page has been marked as "old", and likely contains content that is irrelevant or incorrect. If you can, please update this page. This page will be deleted if action is not taken.

KSM

Sommario

Consentire alle macchine virtuali KVM guest, di condividere identiche pagine di memoria. Ciò è particolarmente utile quando multipli guest sono in esecuzione dalla medesima o similare immagine del S.O. base. Poichè la memoria è condivisa, la memoria combinata usata dai guest risulta ridotta.

Progettista

Stato attuale

Descrizione dettagliata

Il concetto di memoria condivisa è molto comune nell'architettura dei S.O. Per esempio, quando si avvia un processo per la prima volta, esso condivide tutta la memoria con il processo genitore. Quando il processo genitore o figlio modificano una parte della memoria, il kernel alloca una nuova regione di memoria, copia i contenuti originali e permette al processo interessato di modificare la nuova regione. Questa operazione è denominata copy on write (o copia in caso di scrittura).

KSM è una nuova caratteristica di Linux che riprende questo concetto. Esso abilita il kernel a bloccare i due processi (genitore&figlio) in esecuzione per confrontare la loro memoria. Se le zone di memoria sono esattamente identiche, il kernel combina le due regioni in una e le segna per la copy on write.

Questa strategia di ottimizzazione si rivela particolarmente utile con KVM. Quando sono avviate macchine virtuali guest, essi possono ereditare soltanto la memoria del processo genitore, qemu-kvm. Inoltre, è il contenuto dell'immagine del S.O. guest che verosimilmente dovrà essere condiviso. KSM, quindi consente a KVM di segnare queste identiche regioni guest come condivise.

Vantaggi per Fedora

Con questa caratteristica Fedora potrà eseguire macchine virtuali guest in uno spazio di memoria potenzialmente molto più efficente. Ciò vorrà dire che le macchine host Fedora saranno capaci di ospitare più guest di prima.

Documentazione

Altre informazioni

Per:

  • Obiettivi
  • Test Plan
  • Esperienza Utente
  • Dipendenze
  • Progetto corrente
  • Note di rilascio
  • Commenti e Discussioni

visitare la en-wiki Features: KSM