Apakah ada alasan untuk memberikan VM jumlah dasar putaran-2 (2048MB, 4096MB, dll) memori?

26

Judul cukup banyak mengatakan itu semua, apakah ada keuntungan untuk memberikan memori 2048MB VM daripada pembulatan ke basis-10 dan melakukan 2000MB?

Nate
sumber

Jawaban:

10

Memori fisik di server adalah kelipatan dari kekuatan dua, sehingga akan mengiris secara merata jika Anda menggunakan kelipatan lainnya. Mungkin ada beberapa perbaikan yang sangat kecil dengan SLAT dan seperti itu jika mereka juga selaras. Kalau tidak, tidak.

Chris S
sumber
Halaman adalah 4 KiB atau 2 MiB, kebanyakan - tidak ada masalah nyata dengan mengiris bahkan 1234 MiB, kan?
poige
1
@poige Seperti yang saya tahu, ya, tidak ada masalah ... Kami benar-benar membutuhkan seseorang yang tahu SLAT (et alii) di dalam dan luar untuk jawaban yang pasti.
Chris S
13

Hyper-V mengalokasikan memori secara internal dalam potongan 2MB. Hypervisor itu sendiri akan menggunakan entri tabel halaman 2MB untuk efisiensi, jika mungkin, jika prosesor Anda mendukung Terjemahan Alamat Tingkat Kedua (SLAT.) Ini akan memungkinkan untuk hampir semua VM dengan Memori Dinamis dimatikan.

Selain itu, tidak masalah.

Jake Oshins
sumber
7

Hanya untuk memperjelas apa yang dikatakan jawaban lain; batas yang didefinisikan di sini pada dasarnya adalah untuk perangkat lunak mesin virtual Anda, bukan tamu. Yaitu, ketika OS tamu Anda meminta halaman memori, itu dilakukan dalam peningkatan yang ditentukan (yaitu, 4KB). Jadi jika Anda mendefinisikan mesin virtual untuk memiliki 4097KB RAM, dan VM host Anda menggunakan ukuran halaman 4KB, maka kemungkinan akan memberikan total 4100KB RAM ke mesin virtual.

Namun, jika OS tamu menggunakan ukuran halaman 1KB, dan OS host Anda menggunakan ukuran halaman 4KB, maka OS host pada dasarnya akan memberikan ruang 4KB di mana hanya 1KB yang akan digunakan - tetapi itu tidak termasuk semua potongan memori. Jadi Anda tidak akan pernah benar-benar menyia-nyiakan jumlah ruang yang terlihat.

Untuk dicatat, penyelarasan antara OS host dan OS tamu bukan merupakan faktor di sini kecuali untuk "bit mati" yang terakhir.

Andrew M.
sumber
Ini tidak benar dalam keadaan tertentu: Misalnya perangkat lunak VM dapat memesan seluruh jumlah RAM yang diminta (ditambah apa pun yang diperlukan untuk kartu video dan kebutuhan misc. Lainnya) atau ketika menggunakan dukungan perangkat keras paging halaman / tabel tabel tambahan - tamu secara efektif mengelola halaman fisik memori menggunakan perangkat keras CPU. Juga, memesan 4097KB memori kemungkinan besar akan mengalokasikan 4100KB RAM fisik, meskipun hanya 4097KB yang benar-benar dapat diatasi oleh sistem operasi tamu.
Goyuix
2
Saya tidak mengerti apa yang Anda katakan bertentangan dengan jawaban saya. Bisakah Anda menguraikan?
Andrew M.
Itu mungkin maksud Anda, namun dalam membaca jawaban Anda sebagai "Anda pada dasarnya tidak akan pernah bisa menggunakan tambahan 1KB" - Saya mencoba mengklarifikasi bahwa OS tamu dapat (secara teori) menggunakan RAM itu meskipun 3/4 dari halaman fisik kemungkinan tidak akan disentuh. Jawaban Anda tidak terlalu jelas bagi saya. Saya juga mencoba memberikan beberapa kata kunci / teknologi yang akan berdampak pada keputusan tersebut. Masalah penyelarasan halaman hanyalah salah satu bagian dari trade off yang perlu dipertimbangkan dan saya merasa jawabannya dapat ditingkatkan dengan menyebutkan dampak yang relevan dengannya.
Goyuix
Ah, saya melihat kesalahan saya. Sebenarnya itulah yang saya bayangkan, tetapi saya harus menyingkirkannya di berbagai revisi saya. Saya telah memperbaruinya untuk menjelaskan hal itu. :)
Andrew M.
3

Saya curiga ini masalah tradisi, dan menyelaraskannya dengan bagaimana sistem fisik dibangun. Sistem fisik memiliki memori dalam jumlah basis 2 (dan paling tidak dengan setiap x86 yang pernah dibuat, ini benar), dan kemungkinan ada beberapa jika tidak banyak OS mengharapkan ini dalam mengelola memori.

Singkatnya, itu benar-benar karena mesin virtual mencerminkan mesin nyata, bukan mesin hipotetis. Bukan jawaban yang sangat teknis, tapi saya pikir itu yang asli

Journeyman Geek
sumber
1

Tidak juga. Memori dinamis Hyper-v hanya akan mengalokasikan apa yang digunakan sistem. Jumlah yang Anda tetapkan adalah nilai awal. Jika Anda tidak menggunakan memori dinamis, satu-satunya keuntungan yang dapat saya lihat adalah untuk lebih menyelaraskan memori fisik ke virtual.

Jim B
sumber
-1. Lihat, Hyper-V tidak memiliki memori dinamis JIKA TIDAK ADA KONFIGURASI. Dan coba tebak - kadang-kadang masuk akal untuk tidak menggunakannya (alolokasi membutuhkan waktu, jadi server database menginginkan semuanya dengan benar, misalnya). Dengan demikian, jawaban umum tidak relevan dan - sebenarnya - bukan yang ditanyakan sama sekali.
TomTom