Penggunaan CPU KVM

9

Saya memiliki host linux dengan 4 tamu linux KVM. Semua tamu cukup banyak menganggur, memiliki beban <0,1 di dalam tamu.

Sekarang, jika saya melakukan tophost, setiap proses KVM menggunakan sekitar 30% dari CPU.

Apakah ini perilaku normal? Saya berharap tuan rumah membutuhkan CPU jauh lebih sedikit hanya untuk menjadi tuan rumah tamu yang menganggur.

Jika itu normal, apa alasannya?

Jika tidak normal, apa masalahnya?

michas
sumber
Distro Linux mana yang Anda gunakan? Debian, Ubuntu, CentOS atau yang lainnya?
slm
Tuan rumah menjalankan fedora saat ini dengan para tamu SLES 11.2 yang lebih tua. Kernel adalah 3.6.10-4.fc18.x86_64 pada host dan 3.0.13-0.27-default pada tamu.
michas

Jawaban:

6

Menjadi sinis saya bisa mengatakan itu "normal" untuk tamu Windows tetapi tidak untuk tamu Linux (setidaknya saya tidak pernah melihat orang berperilaku seperti itu).

Dengan Windows, itu sangat tergantung pada aplikasi yang berjalan (hampir menganggur). XP atau W2K biasa (saya belum memiliki pengalaman dengan versi yang lebih baru di KVM) menyebabkan 10% hingga 20% pada host (ditampilkan sekitar 0% di dalam) tetapi MS SQL server mendapatkan ini dengan mudah di atas 30%. Ini sepertinya terkait dengan akses timer dan / atau ACPI. Tetapi bahkan dalam VM non-ACPI saya tidak pernah mendapat Windows di bawah 10% pada host.

Edit 1 (mengintegrasikan komentar)

Apa output dari cat /sys/devices/system/clocksource/clocksource0/current_clocksource(di tamu)? Itu harus kvm-clock. Periksa konfigurasi kernel Anda (/proc/config.gz) untuk CONFIG_PARAVIRT_CLOCK dan CONFIG_KVM_CLOCK.

Ini adalah daftar opsi konfigurasi kernel yang relevan dengan KVM .

Hauke ​​Laging
sumber
Hanya ada tamu linux dalam kasus saya. (pertanyaan diperbarui)
michas
2
@michas Oh nak, kau merusak prasangka kesayanganku ... Apakah itu mode teks VM atau mereka punya X? Apa output dari cat /sys/devices/system/clocksource/clocksource0/current_clocksource?
Hauke ​​Laging
current_clocksource ada acpi_pmdi tamu dan tscdi tuan rumah. Tidak X kecuali server aplikasi java dan DB oracle berjalan di setiap tamu.
michas
@ Michael Itu seharusnya kvm-clock(di tamu). Saya tidak pernah harus mengkonfigurasi itu secara eksplisit. Periksa konfigurasi kernel Anda ( /proc/config.gz) untuk CONFIG_PARAVIRT_CLOCKdan CONFIG_KVM_CLOCK.
Hauke ​​Laging
1
Keduanya diatur ke y. Mengatur current_clocksource untuk kvm-clockmembuat segalanya lebih baik. Sekarang setiap proses KVM adalah sekitar 20 persen. Sistem dimigrasikan ke KVM dari pengaturan kotak virtual sebelumnya. Sepertinya beberapa pengaturan masih dari pengaturan lama ...
michas
0

Saya akan memeriksa untuk memastikan bahwa para tamu KVM disediakan sehingga mereka dapat menggunakan semua sumber daya host (CPU, RAM, dll.). Biasanya tamu KVM hanya dialokasikan misalnya 1-2 CPU (core) pada sistem yang mungkin mengandung lebih banyak.

Ini berarti Anda tidak membandingkan hal yang sama persis ketika melihat sumber daya host vs internal tamu KVM yang diberikan.

Sebagai contoh

Tuan rumah memiliki yang berikut:

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
Thread(s) per core:    2
Core(s) per socket:    6
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               1200.000
BogoMIPS:              6404.04
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K
NUMA node0 CPU(s):     0-11

Sementara salah satu tamu KVM memiliki ini:

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 6
Stepping:              3
CPU MHz:               3202.024
BogoMIPS:              6404.04
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0
slm
sumber
1
Serupa di sini: 8 core pada host dan 4 core pada setiap tamu. - Tapi saya tidak mengerti, bagaimana hal itu menghasilkan beban yang besar dari tamu yang menganggur.
michas