Bagaimana memori dialokasikan di server ESXi?

17

Kami memiliki server ESXi 4.1 dengan 48 GB RAM.

Untuk setiap VM, kami mengalokasikan 4GB memori. Karena server akan memiliki 13 mesin virtual, manajer saya berpikir ini salah.

Saya akan menjelaskan kepada mereka bahwa ESXi sebenarnya akan mengelola memori itu sendiri, tetapi mereka bertanya kepada saya berapa banyak memori yang saya alokasikan untuk server ESXi itu sendiri.

Saya tidak mengalokasikan apa pun (saya bahkan belum pernah mendengar opsi untuk mengalokasikan memori untuk server ESXi itu sendiri).

Bagaimana memori dialokasikan untuk server ESXi? Bagaimana cara mengalokasikan / mendistribusikan RAM secara berlebihan di antara mesin virtual tanpa masalah?

Samselvaprabu
sumber

Jawaban:

26

Ada lebih dari sekedar ESXi yang dipertanyakan di sini,

  1. Setiap VM akan mengkonsumsi hingga 4GB + "overhead" yang didokumentasikan di sini . Ini tergantung pada vCPU, + memori yang dialokasikan. Minimal setiap VM akan menggunakan 4261,98 MB (4096 + 165,98)
  2. Memori overhead ESXi sendiri, ini tergantung perangkat keras. Opsi termudah adalah dengan melihat penggunaan memori Sistem di klien vSphere. Dari memori saya ingat itu sekitar tanda 1.3GB, tetapi seperti yang disebutkan itu sangat tergantung pada perangkat keras.

Penjelasan Alokasi Memori & Komitmen Berlebih

Perhatikan bahwa hypervisor tidak akan mengalokasikan semua memori di muka , itu tergantung pada penggunaan VM. Namun, perlu dipahami apa yang akan terjadi jika VM mencoba mengalokasikan dan menggunakan semua memori yang dialokasikan untuk mereka.

Maksimum yang host VM + Anda coba gunakan kira-kira, milage 55 GB dapat bervariasi

  • 1,3 GB digunakan oleh ESXi
  • 4261,98 MBs * 13 digunakan oleh VM

Ada aspek lain yang perlu diperhatikan dan itu adalah ambang memori. Secara default VMware akan bertujuan untuk memiliki 6% gratis (ambang memori tinggi). Jadi 55 GB memori yang digunakan perlu dikurangi hingga ~ 45GB

Itu berarti tuan rumah akan memiliki sekitar 10.500 MB memori yang dibutuhkan untuk mendapatkan kembali dari suatu tempat jika VM menggunakan memori yang telah mereka alokasikan. Ada tiga hal yang ESX lakukan untuk menemukan tambahan 10,5 GB.

Metode Reklamasi Memori

  1. Berbagi Halaman Transparan
  2. Memory Ballooning
  3. Swap Hypervisor

Anda harus membaca dan memahami Memahami Manajemen Sumber Daya Memori di VMware® ESX ™ Server .

Tergantung pada sejumlah besar faktor, kombinasi ketiganya akan / bisa terjadi pada host yang terlalu berkomitmen. Anda perlu menguji lingkungan Anda dan memantau metrik ini untuk memahami dampak dari komitmen yang berlebihan.

Beberapa aturan kasar yang perlu diketahui (semua dalam makalah di atas dan sumber lainnya).

  1. Berbagi halaman transparan tidak terjadi untuk VM yang menggunakan halaman 2/4 MB. Karena Anda telah mengalokasikan 4096 MB ke VM Windows Anda, mereka akan menggunakan halaman 2/4 MB secara default (tergantung PAE). Hanya di bawah tekanan memori, VMware akan memecah halaman besar menjadi 4 KB yang bisa dibagi. TPS mengandalkan penggunaan siklus CPU siaga dan pemindaian halaman memori pada tingkat tertentu. Ini mengembalikan memori relatif lambat (pikirkan satu jam daripada menit). Jadi badai boot akan berarti TPS tidak akan membantu Anda. Dari ketiganya, ini memiliki dampak kinerja terendah. Lebih banyak dari dokumen,

Dalam sistem virtualisasi memori berbantuan perangkat keras (misalnya, Intel EPT Hardware Assist dan AMD RVI Hardware Assist [6]), ESX akan secara otomatis mendukung halaman fisik tamu dengan halaman fisik host yang besar (2MB wilayah memori yang berdekatan bukannya 4KB untuk halaman biasa) untuk kinerja yang lebih baik karena lebih sedikit kehilangan TLB. Dalam sistem seperti itu, ESX tidak akan membagikan halaman-halaman besar itu karena: 1) kemungkinan menemukan dua halaman besar yang memiliki konten identik rendah, dan 2) overhead untuk melakukan perbandingan sedikit demi sedikit untuk halaman 2MB jauh lebih besar daripada untuk halaman 4KB. Namun, ESX masih menghasilkan hash untuk halaman 4KB dalam setiap halaman besar. Karena ESX tidak akan menukar halaman besar, selama pertukaran host, halaman besar akan dipecah menjadi halaman-halaman kecil sehingga hash yang dibuat sebelumnya ini dapat digunakan untuk membagikan halaman-halaman kecil sebelum mereka diganti. Singkatnya, kami tidak dapat mengamati pembagian halaman untuk sistem virtualisasi memori berbantuan perangkat keras hingga memori host terlalu dikomit.

  1. Balon menendang berikutnya (ambang dapat dikonfigurasi, secara default ini adalah ketika tuan rumah memiliki file lebih dari 6% bebas memori (antara tinggi dan perangkat lunak)). Pastikan Anda menginstal driver, dan hati-hati terhadap Java dan aplikasi yang dikelola secara umum. OS tidak memiliki wawasan tentang apa yang akan dilakukan pengumpul sampah selanjutnya dan itu akan berakhir pada halaman yang telah ditukar ke disk. Ini bukan praktik umum untuk server yang menjalankan aplikasi java secara eksklusif untuk menonaktifkan swap sepenuhnya untuk menjamin itu tidak terjadi. Lihat halaman 17 dari vSphere Memory Management, SPECjbb

  2. Swap hypervisor , dari tiga metode adalah satu-satunya yang menjamin "memori" tersedia untuk hypervisor dalam waktu yang ditentukan. Ini akan digunakan jika 1 & 2 tidak memberinya cukup memori untuk tetap berada di bawah ambang keras (default 2% memori bebas). Saat membaca metrik kinerja (lakukan sendiri), Anda akan menyadari ini adalah performa terburuk dari ketiganya. Bertujuan untuk menghindarinya sama sekali karena dampak kinerja akan sangat nyata pada hampir semua aplikasi persentase dua digit

  3. Ada satu lagi kondisi yang harus diperhatikan rendah (secara default 1%). Dari manual ini dapat secara drastis mengurangi kinerja Anda,

Dalam kasus yang jarang terjadi di mana memori bebas host turun di bawah ambang batas rendah, hypervisor terus mengklaim kembali memori melalui pertukaran dan kompresi memori, dan juga memblokir eksekusi semua mesin virtual yang mengkonsumsi lebih banyak memori daripada alokasi memori target mereka.

Ringkasan

Poin utama dari stres adalah tidak mungkin untuk memprediksi dari whitepaper bagaimana lingkungan Anda akan berperilaku.

  1. Berapa banyak yang bisa diberikan TPS kepada Anda? (Tergantung pada seberapa mirip VM Anda dengan OS mereka, Paket Layanan, dan aplikasi yang berjalan)
  2. Seberapa cepat VM Anda mengalokasikan memori Anda? Semakin cepat mereka melakukannya, semakin besar kemungkinan Anda untuk melompat ke ambang berikutnya sebelum skema reklamasi memori yang kurang berdampak berhasil membuat Anda di ambang Anda saat ini.
  3. Tergantung pada aplikasinya, setiap skema reklamasi memori akan memiliki dampak yang sangat bervariasi.

Uji skenario rata-rata Anda, Anda skenario 95% persentil, dan akhirnya maksimum Anda untuk memahami bagaimana lingkungan Anda akan berjalan.


Edit 1

Layak menambahkan bahwa dengan vSphere 4 (atau 4.1 tidak dapat mengingat), sekarang mungkin untuk menempatkan swap hypervisor pada disk lokal tetapi masih memvmasikan VM. Jika Anda menggunakan penyimpanan bersama, saya sangat menyarankan Anda memindahkan file swap hypervisor ke disk lokal secara default. Ini memastikan bahwa ketika satu host berada di bawah tekanan memori yang parah, itu tidak berakhir berdampak semua host / VM vSphere pada penyimpanan bersama yang sama.

Edit 2

Berdasarkan komentar, jadikan fakta bahwa ESX tidak mengalokasikan memori di muka dalam cetak tebal ...

Edit 3

Dijelaskan sedikit tentang ambang memori.

M Afifi
sumber
1
VMware tidak menetapkan memori yang tidak digunakan; alasan sebenarnya mengapa overcommitting berfungsi adalah karena VM hanya akan dialokasikan jumlah maksimum memori ketika memintanya . Setelah semuanya dialokasikan, permintaan untuk memori tambahan berasal dari swap.
adaptr
1
Apakah Anda melihat sedikit ini sebelum menambahkan komentar itu? "Perhatikan bahwa hypervisor tidak akan mengalokasikan semua memori di muka, itu tergantung pada penggunaan VM. Namun, perlu dipahami apa yang akan terjadi jika VM mencoba mengalokasikan dan menggunakan semua memori yang dialokasikan untuk mereka"
M Afifi
Karena itu jelas merupakan salah satu perhatian utama OPs (BAGAIMANA vmware menyulap memori yang TIDAK SAYA PUNYA?), Seharusnya itu muncul di daftar, bukan sebagai renungan. Anda menjelaskan penggunaan memori mundur dengan menjelaskan reklamasi. Mengapa
adaptr
Bagaimana ini mundur? Jawaban mengatakan, ini adalah berapa banyak memori yang telah Anda alokasikan. Itu tidak akan mengalokasikannya di muka. Jika ya (berdasarkan penggunaan memori VM) itulah dampaknya. Tidak bisa benar-benar memberi tahu seseorang jangan khawatir tentang hal itu. Jika Anda overcommit memory, Anda harus tahu dampaknya.
M Afifi
4

VMware (dan teknologi virtualisasi lainnya) berbagi sumber daya (memori, waktu prosesor, I / O dari berbagai jenis) antara VM sesuai dengan berbagai algoritma.

Itu mungkin untuk sumber daya overkomit , karena tidak semua VM akan menggunakan semua pemrosesan, memori atau I / O yang mereka butuhkan sepanjang waktu. Panduan manajemen sumber daya VMware mungkin adalah tempat terbaik untuk membaca apa yang mungkin ada di ESXi.

Anda juga dapat mengelola efek algoritme dengan menimbang VM yang berbeda untuk sumber daya yang berbeda - misalnya Anda dapat memberikan server aplikasi VM bobot yang lebih tinggi untuk prosesor daripada VM server file. Namun, pengaturan di luar kotak akan menangani sebagian besar persyaratan dengan sangat baik. Dalam beberapa kasus, melakukan beberapa konfigurasi di sini sudah cukup untuk menenangkan para manajer yang tidak mengerti, tetapi tentu saja hati-hati dan baca dokumen untuk versi VMware Anda dan pahami apa yang Anda lakukan. Jika manajer Anda tidak membutuhkan penempatan lebih lanjut, maka gunakan saja pengaturan default.

Perhatikan bahwa komitmen berlebihan tidak selalu merupakan ide yang baik, terutama jika Anda telah melakukan virtualisasi pada satu server. Anda harus memantau penggunaan sumber daya di perkebunan ESXi Anda, dan jika perlu tambahkan host / sumber daya tambahan jika Anda sering menggunakan semua sumber daya satu atau lebih.

dunxd
sumber
2

Biarkan instalasi VMWare ESXi Anda menanganinya. Anda dapat terlalu mengandalkan sumber daya RAM pada sistem VMWare karena penggunaannya dari memory ballooning, kompresi dan teknik deduplikasi .

Jika mesin virtual menggunakan sistem operasi serupa, ada beberapa penghematan di sana. Pastikan untuk mengaktifkan alat VMWare di dalam guest VM untuk memanfaatkan fitur-fitur ini sepenuhnya.

putih
sumber