Kami menggunakan Ubuntu 12.04 dengan parameter berikut:
- Dell R910
- Kernel 3.2.0-25-generik # 40-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux
- kvm 1: 84 + dfsg-0ubuntu16 + 1.0 + noroms + 0ubuntu13
- qemu-kvm 1.0 + noroms-0ubuntu13
- qemu-common 1.0 + noroms-0ubuntu13
- qemu-kvm 1.0 + noroms-0ubuntu13
- 4 x Intel (R) Xeon (R) CPU E7- 4870 @ 2.40GHz (masing-masing dengan 10 inti fisik, HT dan Intel VT diaktifkan)
- Para tamu Windows saat ini tidak memiliki VirtIO, tetapi itu akan segera berubah
Kami menjalankan beberapa tamu Windows pada mesin ini, salah satunya adalah Windows 2003 32 Bit, satu lagi Windows 2008 (64 Bit). Kami saat ini berjuang dengan masalah kinerja dan bermain-main dengan model CPU.
Kami biasanya menggunakan "qemu-system-x86_64 untuk tamu Windows 32 Bit kami, misalnya:
/usr/bin/qemu-system-x86_64 -S -M pc-1.0 -cpu qemu32 -enable-kvm -m 4096 -smp 4,sockets=4,cores=1,threads=1 [...]
Kinerja tamu ini ternyata menjadi sedikit rendah. Kami belum menjalankan tolok ukur apa pun, tetapi katakanlah bahwa menyalin sejumlah besar data (file) di dalam VM dari satu direktori ke direktori lainnya berjalan jauh lebih cepat ketika kami mengganti model CPU dari "-cpu qemu32" ke "-cpu Nehalem ". File yang memakan waktu sekitar 2: 40h untuk menyalin sekarang menyalin dalam waktu 40 menit. Tentu saja ini bukan uji kualitas tinggi dan ada banyak ruang untuk memiliki usaha yang lebih profesional. Tapi ini merupakan indikator yang jelas bahwa memilih model CPU yang benar dapat mempengaruhi kinerja tamu berat.
Sekarang saya jadi penasaran dan berlari:
qemu-x86_64 -cpu ?
x86 [n270]
x86 [athlon]
x86 [pentium3]
x86 [pentium2]
x86 [pentium]
x86 [486]
x86 [coreduo]
x86 [kvm32]
x86 [qemu32]
x86 [kvm64]
x86 [core2duo]
x86 [phenom]
x86 [qemu64]
Dan:
kvm -cpu ?model
x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron)
x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron)
x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron)
x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7)
x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2)
x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2)
x86 [n270] Intel(R) Atom(TM) CPU N270 @ 1.60GHz
x86 [athlon] QEMU Virtual CPU version 1.0
x86 [pentium3]
x86 [pentium2]
x86 [pentium]
x86 [486]
x86 [coreduo] Genuine Intel(R) CPU T2600 @ 2.16GHz
x86 [kvm32] Common 32-bit KVM processor
x86 [qemu32] QEMU Virtual CPU version 1.0
x86 [kvm64] Common KVM processor
x86 [core2duo] Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
x86 [phenom] AMD Phenom(tm) 9550 Quad-Core Processor
x86 [qemu64] QEMU Virtual CPU version 1.0
Dengan semua versi yang berbeda ini, agak sulit ditebak. "Nehalem" tampaknya yang paling berkinerja dalam daftar itu. Sekarang saya bertanya-tanya, bagaimana cara mengetahui model CPU mana yang terbaik untuk tamu saya? Menjelajahi Internet, saya menemukan sumber daya berikut:
- http://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
- http://www.linux-kvm.org/page/Tuning_KVM
Ketika saya membaca situs-situs itu dengan benar, mereka mengklaim bahwa "-cpu host" mungkin membawa kinerja terbaik. Saya belum memiliki kekhawatiran tentang migrasi, karena kedua host KVM dilengkapi sama (tepatnya perangkat keras yang sama).
Jadi, apa yang direkomendasikan oleh admin KVM berpengalaman? Apakah ada aturan emas atau bahkan matriks, seperti "model ini adalah yang terbaik untuk OS tamu itu"?
Saya minta maaf jika saya bisa mengetahui informasi ini sendiri - saya menjalankan berbagai pencarian Google dan menelusuri banyak situs web. Saya tidak dapat menemukan sesuatu yang menjawab pertanyaan saya.
Jawaban:
Cukup sederhana kok. Untuk kelompok homogen dan pengaturan satu host gunakan
host
opsi. Untuk cluster campuran, gunakan versi CPU terendah yang tersedia, jadi jika satu host adalah Penryn dan Nehalem lainnya, gunakan Penryn pada keduanya.Jika Anda menggunakan RHEV atau oVirt, ini sudah ada di dalamnya. VMWare memiliki ini disebut "EVC" dan menempatkannya sebagai fitur yang sangat besar.
Kembali ke kinerja, Anda pasti membutuhkan virtio di mana pun Anda bisa menaruhnya. Dan jika Anda masih mengalami hambatan kinerja, itu biasanya dapat diatasi berdasarkan kasus per kasus, tergantung di mana mereka terjadi.
[offtop] Pada pilihan distribusi Anda, saya sudah berkomentar di utas lain [/ offtop]
sumber
Jangan kehilangan lebih banyak waktu dengan mengutak-atik apa pun.
Instal driver virtio dan kembali. Perbedaannya sangat besar sehingga peningkatan apa pun yang Anda dapat temukan sekarang tidak akan ada artinya dengan virtIO.
Hanya sebuah contoh dengan salah satu server kami:
- tanpa virtIO, W2k3 dapat menangani sekitar 10 pengguna Terminal Server
- dengan virtIO, mesin yang sama dengan OS yang sama saat ini menangani 120 hingga 125 pengguna dengan sedikit memperlambat. Dan kami menambahkan mesin virtual lain untuk menjalankan SQL Server satu komputer fisik yang sama
sumber
Qemu tidak berfungsi dengan cara yang sama seperti banyak hypervisor lainnya. Sebagai permulaan, ini dapat memberikan persaingan penuh. Itu artinya Anda dapat menjalankan kode x86 pada prosesor ARM, misalnya. Ketika dalam mode KVM, saat Anda menggunakannya, itu tidak benar-benar melakukan itu ... prosesor terpapar tidak peduli apa, tapi apa yang dilaporkan ke OS akan diubah oleh
-cpu
flag.Jika Anda menginginkan kecepatan yang lebih cepat, ini adalah titik awal untuk mencoba dan mencocokkan kemampuan prosesor virtual dengan prosesor nyata Anda sebaik mungkin. Itu akan mengurangi kasus di mana opcode sub-optimal dipanggil untuk menjalankan tugas, dan juga akan mengurangi opcode yang tidak mungkin pada perangkat keras Anda diterjemahkan ke sesuatu yang lain terlebih dahulu. Karena model prosesor Xeon Anda dirilis pada awal 2011, itu mungkin mendukung sebagian besar sejalan dengan seri Core i7. Untuk itu, saya akan mengatakan bahwa arsitektur Nehalem adalah emulasi terbaik Anda.
Mengutip dari salah satu tautan Anda ( Tuning KVM ):
Dengan demikian, jika Anda merasa bahwa Anda mungkin pada akhirnya memindahkan barang-barang cukup untuk membuat masalah, Anda dapat menemukan semua set instruksi yang didukung yang Anda pikir prosesor apa pun yang Anda miliki sekarang atau yang mungkin Anda miliki di masa depan mendukung dan mendaftarkannya.
Namun, sebagian besar waktu, Anda ingin tetap berpegang pada
-cpu host
. Menentukan CPU dengan flag yang kurang tersedia berarti aplikasi akan menghindari penggunaan fitur yang bisa membuatnya lebih cepat.sumber
Anda mendapatkan opsi '-cpu host' bingung. Opsi ini TIDAK mengaktifkan hanya semua fitur CPU yang spesifik untuk sistem host Anda, ini memungkinkan SEMUA fitur yang didukung CPU Anda dan semua yang dapat ditiru bahkan jika CPU Anda tidak mendukungnya.
-cpu host
adalah pilihan yang baik tetapi bukan yang paling efisien, karena mungkin mengaktifkan opsi yang dapat ditiru yang tidak didukung cpu Anda, sistem tamu dapat sedikit melambat kapan saja ia mencoba menggunakan salah satu fitur ini yang perlu ditiru .
Sumber: http://wiki.qemu.org/Features/CPUModels
sumber
CentOS 6.7 memberi saya kinerja KVM + Spice yang tepat pada Dell R910. Saya pikir begitu Anda mencobanya, Anda tidak akan kembali ke hal lain (serius)!
sumber