Akankah menyiapkan VM dengan lebih dari 1 cpu / core benar-benar meningkatkan kinerja?

11

Ketika saya menggunakan VMware workstation saya dapat mengatur VM dengan banyak core. Saya sebenarnya menggunakannya pada mesin dengan dual core dan 4 core logis. Jadi apakah saya akan benar-benar meningkatkan kinerja VMS dengan menggunakan lebih banyak core pada VM?

Pete2k
sumber
3
Ada baiknya mengingat satu hal ketika mengukur tamu virtual: Jika itu akan menguntungkan instalasi pada mesin nyata, maka itu akan menguntungkannya sebagai mesin virtual dan sebaliknya. Dan yang paling penting dari semuanya: Tidak ada yang ajaib terjadi pada persyaratan sistem atau aplikasi hanya karena Anda memvirtualisasikan sesuatu .
Rob Moir

Jawaban:

8

tergantung pada apa VM berjalan, tamu di mesin dengan n jumlah inti akan melakukan yang terbaik di n-1 core yang ditugaskan selama tamu mampu menggunakan banyak CPU secara efektif. Sayangnya cara paling sederhana untuk menentukan ini adalah dengan mencobanya dan melihatnya. Saya biasanya mulai dengan 2 dan berhenti ketika saya kehabisan peningkatan kinerja. Biasanya 2 core adalah tempat saya melihat "sweet spot". Beberapa kombinasi aplikasi / os yang saya jalankan akan berskala lebih baik dari itu.

Jim B
sumber
6

Untuk memperjelas, Anda mengatakan bahwa Anda memiliki CPU dual-core, dan Anda telah menetapkan 4 CPU virtual pada VM?

Dalam hal ini, tidak; jika Anda menetapkan lebih banyak vCPU daripada Anda memiliki inti eksekusi fisik, Anda benar-benar akan melihat sedikit penurunan kinerja karena overhead berbagi 2 core fisik di antara 4 core virtual (ditambah semua yang berjalan pada host fisik).

Anda akan melihat kinerja terbaik dari VM dengan menetapkannya 2 vCPUs.

Shane Madden
sumber
Belum tentu - Anda hanya akan benar-benar melihat peningkatan kinerja jika aplikasi yang berjalan pada VM dapat memanfaatkan sistem multi-core. Sayangnya meskipun tahun 2011, banyak aplikasi tidak.
EEAA
@ErikA Fair point - aplikasi threading samping, saya hanya mengatakan bahwa dengan hanya 2 core fisik, 2 vCPU pada satu VM selalu lebih baik dari 4 vCPU.
Shane Madden
ya, 100% menyetujui hal itu.
EEAA
5

Kami bereksperimen beberapa waktu yang lalu ( lihat pertanyaan saya dari tahun lalu ) dengan menugaskan vCPU dari core fisik vs. core logis (utas) dalam CPU quad-core dengan hyperthreading (8 vCPU yang dapat ditugaskan tampaknya tersedia). Seperti jawaban yang saya terima saat itu - dan pengalaman kami membosankan - Anda harus mengalokasikan jumlah minimum core yang Anda bisa untuk setiap tamu untuk memungkinkannya melakukan.

Ketika menetapkan lebih banyak vCPU daripada core fisik yang tersedia di host, jika tamu berada di bawah beban simultan hipertransmisi tidak selalu cukup cepat dalam mengalihkan konteks CPU antara thread untuk mensimulasikan CPU lain secara efektif. Hal ini dapat menyebabkan hal-hal yang sangat buruk bagi semua tamu, termasuk penguncian dan batas waktu yang memerlukan boot ulang, fsck, dan lebih buruk lagi di stack. Bahkan jika hal ini tidak terjadi, kinerja seringkali lebih lambat untuk tamu daripada lebih cepat.

Seperti yang dikatakan @Chris S dalam komentarnya saat itu, "selalu alokasikan sesedikit yang bisa Anda dapatkan dan Anda akan terhindar dari sakit kepala besar."

nedm
sumber