Kami memiliki cluster Heartbeat / DRBD / Pacemaker / KVM / Qemu / libvirt yang terdiri dari dua node. Setiap node menjalankan Ubuntu 12.04 64 Bit dengan paket / versi berikut:
- Kernel 3.2.0-32-generik # 51-Ubuntu SMP
- DRBD 8.3.11
- qemu-kvm 1.0 + noroms-0ubuntu14.3
- libvirt 0.9.13
- alat pacu jantung 1.1.7
- detak jantung 3.0.5
Para tamu virtual menjalankan Ubuntu 10.04 64 Bit dan Ubuntu 12.04 64 Bit. Kami menggunakan fitur libvirt untuk memberikan kemampuan CPU host kepada tamu virtual untuk mencapai kinerja CPU terbaik.
Sekarang di sini adalah pengaturan umum pada klaster ini:
- VM "monitoring" memiliki 4 vCPU
- VM "monitoring" menggunakan ide sebagai antarmuka disk (kami saat ini beralih ke VirtIO karena alasan yang jelas)
Kami baru-baru ini menjalankan beberapa tes sederhana. Saya tahu mereka tidak profesional dan tidak mencapai standar tinggi, tetapi mereka sudah menunjukkan tren yang kuat:
Node A menjalankan VM "bla" Node B menjalankan VM "monitoring"
Ketika kami rsync file dari VM "bla" ke VM "monitoring" kami hanya mencapai 12 MB / s. Ketika kami melakukan dd sederhana jika = / dev / null dari = / tmp / blubb di dalam "pemantauan" VM, kami mencapai sekitar 30 MB / s.
Kemudian kami menambahkan 4 vCPU lainnya ke VM "monitoring" dan restart itu. VM "monitoring" sekarang memiliki 8 vCPU. Kami menjalankan ulang pengujian dengan hasil berikut: Ketika kami rsync file dari VM "bla" ke VM "monitoring" sekarang kami mencapai 36 MB / s. Ketika kita melakukan dd sederhana jika = / dev / null dari = / tmp / blubb di dalam "pemantauan" VM sekarang kita mencapai sekitar 61 MB / s.
Bagi saya, efek ini cukup mengejutkan. Kenapa itu tampaknya menambahkan lebih banyak CPU virtual untuk tamu virtual ini secara otomatis berarti lebih banyak kinerja disk di dalam VM?
Saya tidak punya penjelasan untuk ini dan akan sangat menghargai masukan Anda. Saya ingin memahami apa yang menyebabkan peningkatan kinerja ini karena saya dapat mereproduksi perilaku ini 100%.
kvm_trace
untuk melihat bagaimana jumlah IO_Exits
perubahan ketika Anda mengubah nomor CPU. Saya kira itu karena Anda menggunakan IDE, yang dijadwalkan dengan CPU tamu. Dengan virtio kinerjanya harus konsisten, dan ketika data-plane dalam qemu, itu akan mendapatkan dorongan drastis. Dugaan lain bisa pada kenyataan bahwa Anda menggunakan distribusi yang dikenal untuk tumpukan virtualisasi kereta.