From Fedora Project Wiki

(Created page with '= KVM Huge Page Backed Memory = == Sommario == Enable KVM guests to use huge page backed memory in order to reduce memory consumption and improve performance by reducing CPU ca...')
 
No edit summary
Line 1: Line 1:
= KVM Huge Page Backed Memory =
= Pagine di memoria di grandi dimensioni (4MB) per ospiti KVM =


== Sommario ==
== Sommario ==
 
Abilita gli ospiti KVM ad usare pagine di memoria di grandi dimensioni per ridurre il consumo di memoria e migliorare le prestazioni riducendo la pressione sulla cache da parte della CPU.  
Enable KVM guests to use huge page backed memory in order to reduce memory consumption and improve performance by reducing CPU cache pressure.


== Progettista ==
== Progettista ==
Line 10: Line 9:
* [[User:JohnCooper|John Cooper]], [mailto:john.cooper@redhat.com john.cooper@redhat.com]
* [[User:JohnCooper|John Cooper]], [mailto:john.cooper@redhat.com john.cooper@redhat.com]


== Current status ==
== Stato corrente ==
 
* Release: [[Releases/12| Fedora 12]]  
* Targeted release: [[Releases/12|Fedora 12]]
* Ultimo aggiornamento: visita la [[Features/KVM Huge Page Backed Memory#Current_status | pagina originale]] di questo documento.
* Last updated: 2009-09-24
* Completato
* Percentage of completion: 100%
 
An [https://bugzilla.redhat.com/515741 SELinux issue in the kernel] still remains, preventing full sVirt protection being applied to huge pages.
 
=== Completed ===
 
# KVM support for huge pages
# libvirt [http://www.redhat.com/archives/libvir-list/2009-July/msg00699.html patch posted] for running guests with <code>-mem-path /dev/hugepages</code>
# libvirt [http://www.redhat.com/archives/libvir-list/2009-July/msg00753.html patch-v2 posted] which detects the host's hugetlbfs mount point automatically.
# Identify [https://bugzilla.redhat.com/515741 SELinux issue in the kernel]
# Get the libvirt patch committed to libvirt-0.7.1
 
== Detailed Description ==
 
x86 CPUs usually address memory in 4kB pages, but they also have the ability to use huge pages (4MB on x86_32, 2MB on x86_64 and x86_32 PAE).


By using huge pages for a KVM guest's memory, less memory is used for page tables and TLB misses are reduced, thereby increasing performance.
Rimane tuttavia un [https://bugzilla.redhat.com/515741 problema di SELinux nel kernel (en)], che impedisce di applicare piena protezione di sVirt a grandi quantità di memoria paginata.


Using huge pages for guest memory does have a downside, however - you can no longer swap nor balloon guest memory.
== Descrizione dettagliata ==
Le CPU x86 solitamente accedono ad aree di memoria, cosiddetta paginata, di dimensione di 4KB, ma possono tranquillamente usare pagine anche più grandi (p.e. 4MB su x86_32, 2MB su x86_64 e x86_32 PAE).


In order to use huge pages with KVM, one must do the following:
Usando pagine di memoria di grandi dimensioni per un ospite KVM, occorrerà meno memoria per le tabelle delle pagine e si ridurranno le eccezioni di TLB (Translation Lookaside Buffer) invocate dal S.O., e tutto ciò comporterà un incremento nelle prestazioni del S.O. 


# Mount hugetlbfs to <code>/dev/hugepages</code> - <code>mount -t hugetlbfs hugetlbfs /dev/hugepages</code>
Tuttavia, ciò presenta comunque uno svantaggio - non si potrà più utilizzare il ''balloon driver'' o la tecnica dello ''swapping'' sulla memoria ospite.
# Reserve some memory for huge pages - <code>sysctl vm.nr_hugepages=516</code>
# Pass the hugetlbfs path to <code>qemu-kvm</code> - <code>qemu-kvm -mem-path /dev/hugepages</code>


This feature aims to improve allow huge pages to be used with libvirt managed guests.
Per usare pagine di memoria di grandi dimensioni con KVM, occorre effettuare i passi seguenti:
# Montare hugetlbfs su <code>/dev/hugepages</code><pre>mount -t hugetlbfs /dev/hugepages</pre>
# Riservare memoria per le pagine <pre>sysctl vm.nr_hugepages=516</pre>
# Indicare il percorso di hugetlbfs a <code>qemu-kvm</code><pre>qemu-kvm -mem-path /dev/hugepages</pre>


== Benefit to Fedora ==
La caratteristica di questo progetto serve a incrementare la capacità di usare pagine di memoria di grandi dimensioni su ospiti gestiti da libvirt.


Enables Fedora KVM hosts to achieve better performance.
== Vantaggi per Fedora ==
Assicurare una migliore prestazione agli ospiti KVM di Fedora.


== Altre informazioni ==  
== Altre informazioni ==  

Revision as of 16:33, 27 January 2010

Pagine di memoria di grandi dimensioni (4MB) per ospiti KVM

Sommario

Abilita gli ospiti KVM ad usare pagine di memoria di grandi dimensioni per ridurre il consumo di memoria e migliorare le prestazioni riducendo la pressione sulla cache da parte della CPU.

Progettista

Stato corrente

Rimane tuttavia un problema di SELinux nel kernel (en), che impedisce di applicare piena protezione di sVirt a grandi quantità di memoria paginata.

Descrizione dettagliata

Le CPU x86 solitamente accedono ad aree di memoria, cosiddetta paginata, di dimensione di 4KB, ma possono tranquillamente usare pagine anche più grandi (p.e. 4MB su x86_32, 2MB su x86_64 e x86_32 PAE).

Usando pagine di memoria di grandi dimensioni per un ospite KVM, occorrerà meno memoria per le tabelle delle pagine e si ridurranno le eccezioni di TLB (Translation Lookaside Buffer) invocate dal S.O., e tutto ciò comporterà un incremento nelle prestazioni del S.O.

Tuttavia, ciò presenta comunque uno svantaggio - non si potrà più utilizzare il balloon driver o la tecnica dello swapping sulla memoria ospite.

Per usare pagine di memoria di grandi dimensioni con KVM, occorre effettuare i passi seguenti:

  1. Montare hugetlbfs su /dev/hugepages
    mount -t hugetlbfs /dev/hugepages
  2. Riservare memoria per le pagine
    sysctl vm.nr_hugepages=516
  3. Indicare il percorso di hugetlbfs a qemu-kvm
    qemu-kvm -mem-path /dev/hugepages

La caratteristica di questo progetto serve a incrementare la capacità di usare pagine di memoria di grandi dimensioni su ospiti gestiti da libvirt.

Vantaggi per Fedora

Assicurare una migliore prestazione agli ospiti KVM di Fedora.

Altre informazioni

Per:

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

consultare la pagina originale di questo documento.