Bir VM'ye yuvarlak baz-2 (2048MB, 4096MB, vb.) Bellek vermenin bir nedeni var mı?


26

Başlık hemen hemen her şeyi söylüyor, üs 10'a yuvarlamak ve 2000 MB yapmak yerine VM 2048 MB bellek vermenin bir avantajı var mı?

Yanıtlar:


10

Sunucudaki fiziksel bellek, iki gücün katlarıdır, bu yüzden diğer katları kullanırsanız eşit olarak dilimleyecektir. SLAT'la ilgili inanılmaz derecede küçük iyileştirmeler olabilir ve böyle düzgün şekilde ayarlanmışlarsa böyle olabilir. Aksi takdirde hayır.


Sayfalar 4 KiB veya 2 MiB, çoğunlukla - 1234 MiB'nin bile dilimlenmesinde bile gerçek bir problem yok, değil mi?
poige

1
@poige En iyi bildiğim gibi, evet, sorun yok ... Kesin bir cevap için SLAT (et alii) yi tanıyan birine ihtiyacımız var.
Chris S

13

Hyper-V dahili olarak 2 MB'lık parçalar halinde hafıza ayırır. İşlemciniz Second-Level Address Translation (SLAT.) Özelliğini destekliyorsa, eğer mümkünse, hipervizörün kendisi verimlilik için 2MB sayfalık tablo girişleri kullanacaktır.

Bunun dışında hayır önemli değil.


7

Sadece diğer cevapların söylediklerini netleştirmek için; Burada tanımlanan limit temel olarak konuk için değil, sanal makinenizin yazılımı içindir. Yani, misafir işletim sisteminiz bir bellek sayfası istediğinde, bunu belirli artışlarla (yani, 4KB) yapıyor. Öyleyse, sanal makineyi 4097KB RAM olacak şekilde tanımladıysanız ve ana makine VM'niz 4KB sayfa boyutu kullanıyorsa, sanal makineye toplam 4100 KB RAM verir.

Bununla birlikte konuk işletim sistemi 1 KB sayfa boyutu kullanıyorsa ve ana bilgisayar işletim sisteminiz 4 KB sayfa boyutu kullanıyorsa, ana bilgisayar işletim sistemi temelde yalnızca 1 KB kullanılacak 4 KB alan verir - ancak hepsi bu hafıza parçaları. Böylece hiçbir zaman gerçekten fark edilebilir bir alan israf etmeyeceksiniz.

Not etmek gerekirse, ana işletim sistemi işletim sistemi ile konuk işletim sistemi arasındaki uyum, bu son "kapalı bitler" dışında bir faktör değildir.


Bu, belirli koşullar altında doğru değildir: Örneğin, VM yazılımı, istenen RAM miktarının tamamını (artı ekran kartı ve diğer çeşitli ihtiyaçlar için ne gerekiyorsa) veya iç içe geçmiş sayfalama / genişletilmiş sayfa tabloları donanım desteği kullanırken - konuk CPU donanımını kullanarak fiziksel bellek sayfalarını etkili bir şekilde yönetir. Ayrıca, 4097KB hafıza ayırmak büyük olasılıkla 4100KB fiziksel RAM tahsis eder, ancak yalnızca 4097KB misafir işletim sistemi tarafından ele alınabilecektir.
Goyuix

2
Söylediklerinin cevabımla ne anlama geldiğini anlamıyorum. Ayrıntılı misiniz?
Andrew M.

Bu sizin amacınız olabilir, ancak cevabınızı "aslında bu ekstra 1KB'yi asla kullanamazsınız" olarak okuduğunuzda - Konuk işletim sisteminin (teoride) 3/4 olsa bile bu RAM'i kullanabileceğini açıklamaya çalıştım. Fiziksel sayfa dokunulmaz olacaktır. Cevabınız benim için çok net değil. Ayrıca bu kararları etkileyebilecek bazı anahtar kelimeler / teknolojiler sunmaya çalıştım. Sayfa hizalama sorunları, dikkate alınması gereken değiş tokuşların sadece bir kısmıdır ve cevabın spesifik olarak ilgili etkilerine değinerek iyileştirilebileceğini hissettim.
Goyuix

Ah, nereye yanlış gittiğimi görüyorum. Aslında böyle düşündüm, ama çeşitli revizyonlarımda ondan kurtulmuş olmalıyım. Bu noktayı netleştirmek için güncelledim. :)
Andrew M.

3

Bunun bir gelenek meselesi olduğundan şüpheleniyorum ve fiziksel sistemlerin nasıl inşa edildiğine uyuyorum. Fiziksel sistemler baz 2 miktarında hafızaya sahiptir (ve en azından şimdiye kadar yapılan her x86 ile, bu doğrudur) ve pek çok işletim sistemi hafızayı yönetmede bunu beklemiyorsa, ihtimaller birazdır.

Kısacası, bunun nedeni, sanal bir makinenin varsayımsal olandan değil gerçek bir makineyi yansıtmasıdır. Çok teknik bir cevap değil ama bence gerçek olan


1

Pek sayılmaz. Hyper-v dinamik belleği, yalnızca sistemin ne kullandığını tahsis eder. Atadığınız miktar başlangıç ​​değeridir. Dinamik bellek kullanmıyorsanız, görebildiğim tek avantaj fiziksel belleği sanalla daha iyi hizalamak.



-1. Bakın, HİÇBİR YAPILANDIRMADIĞINDA Hyper-V'nin dinamik belleği yok. Ve ne olduğunu tahmin et - bazılarının bunu kullanmamanın mantıklı olduğu anlaşılıyor (tahlil etmek zaman alıyor, bu nedenle bir veritabanı sunucusu her şeyi aynı anda istiyor). Bu nedenle, genel cevap konuyla ilgili değildir ve - aslında - sorulan şey değildir.
TomTom
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.