Pemahaman saya adalah bahwa salah satu manfaat besar menggunakan VM adalah Anda dapat berbagi sumber daya antara mesin virtual di host. Jadi Anda dapat memiliki host dengan 120 CPU dan menempatkan 5 VM di atasnya dengan 32 CPU masing-masing. CPU tambahan "dibagi" antara VM dengan host yang menetapkan CPU secara dinamis berdasarkan kebutuhan. Sama untuk memori.
Saya juga mengerti bahwa ini adalah no-no besar untuk VM yang menampung SQL Server tetapi admin VM saya tidak setuju. Adakah yang punya bukti atau dokumentasi dengan satu atau lain cara?
Saya tidak tahu apakah itu penting tetapi kami menggunakan VMWare.
sql-server
virtualisation
vmware
Kenneth Fisher
sumber
sumber
could
dibagikan. Ketika saya mengajukan pertanyaan saya menyadari bahwa mungkin sangat berbeda untuk CPU dan memori tetapi keduanya merupakan pilihan.Jawaban:
Yang Anda tanyakan adalah, "Apakah boleh jika kita melakukan overcommit pada CPU?"
Tidak apa-apa sampai Anda mulai mengalami hambatan kinerja yang terkait dengan konsumsi CPU. Jawaban yang sama juga berlaku dengan komitmen jaringan yang berlebihan - tidak seperti Anda meletakkan 5 kartu Ethernet 10Gb terpisah di host, dan mendedikasikan satu kartu per VM. Virtualisasi adalah tentang komitmen berlebihan, dan berjalan di antara ketersediaan sumber daya dan kebutuhan sumber daya.
Secara umum, Anda tidak ingin terlalu berkomitmen pada memori, karena SQL Server akan secara aktif menggunakan memori apa pun yang Anda sajikan. Daripada membiarkan halaman VMs ke disk host, Anda lebih baik melakukan analisis VM-by-VM untuk mencari tahu VM mana yang bisa hidup dengan memori lebih sedikit, dan kemudian mengkonfigurasi mereka dengan memori lebih sedikit untuk memulai.
sumber
Masalah yang saya lihat dengan alokasi dinamis beberapa sumber daya adalah bahwa hal itu mengarah pada kinerja yang tidak terduga. Permintaan pelaporan x memiliki 32 CPU yang tersedia kemarin, dan berjalan dalam 4 menit, hari ini hanya memiliki 24 dan butuh waktu lebih lama. Anda juga dapat melihat latensi saat tamu menunggu core lainnya tersedia.
Jonathan Kehayias memberikan beberapa peringatan praktis tentang over-berlangganan CPU dan memori di sini (dan terus terang saya percaya pengalaman dan sarannya lebih dari admin VM biasa, jangan tersinggung kepada mereka, tapi saya curiga ia memiliki banyak pengalaman langsung dengan kombinasi):
sumber
Pemahaman saya adalah bahwa beberapa tingkat komitmen CPU yang berlebihan mungkin baik-baik saja, tetapi itu benar-benar tergantung pada persyaratan beban kerja semua tamu. Lihatlah blog David Klee untuk mendapatkan banyak informasi VM yang bagus. Khususnya http://www.davidklee.net/articles/sql-server-articles/cpu-overcommitment-and-its-impact-on-sql-server-performance-on-vmware/ untuk penjelasan komitmen CPU berlebihan dan dampaknya pada SQL Server.
Komitmen over-memori adalah hewan lain seluruhnya dan secara umum, host VM tidak boleh terlalu berkomitmen pada memori jika menjalankan SQL Server. Sekali lagi saya akan menggunakan David Klee sebagai referensi. http://www.davidklee.net/2013/11/04/lock-pages-in-memory-in-sql-server-on-vmware-why-or-why-not/ di mana ia menjelaskan efek memori -komitmen.
Semoga ini membantu.
sumber