Sanal makinede CPU hızını sınırlamak?


29

Sanal makinede CPU hızını sınırlamanın bir yolunu bilen var mı? Ya da bunu yapmanıza izin veren bir sanallaştırma yazılımı varsa?

Sahip olduğum belirli bir işletim sistemi görüntüsü verilen bir sistem için minimum gereksinimleri bulmaya çalışıyorum. RAM ve sabit disk boyutunu ve çekirdek sayısını sınırlama yollarını görüyorum, ancak sistem yapılandırmasını gerçekten simüle etmek için CPU'yu 800 MHz'e düşürmem gerekiyor. Ayrıca, sanal makineyi çalıştıran bilgisayar bir Windows 7 makinesidir.

Yanıtlar:


21

Aynı sorunla görevlendirildim ve Oracle VirtualBox'u Windows 7'ye (sunucu olarak) ve Ubuntu'ya (konuk olarak) yükledim. Bağımsız bir dizüstü bilgisayar olan Intl Core i7, 1.87 GigHZ ve 8Gig RAM'de çalışan HP EliteBook 8540W kullandım.

Yüklemenizin düzgün çalıştığını varsayalım, Konuk makinenizde (örneğin benim durumumda, Ubuntu) ana menüdeki "Makine" den "Ayarlar ..." ı seçin; "Sistem" seçin ve "İşlemci" sekmesine tıklayın. Çubuk üzerindeki göstergeyi tamamen yüzde 1'e kaydırarak saat hızını ("Uygulama Kapağı" etiketli) ayarlayabilirsiniz.

Ana bilgisayar işletim sisteminin (benim durumumdaki Windows 7) herhangi bir saat döngüsünü tüketmediğini varsaydım ("Görev Yöneticisi" ni kontrol ederek bunu onayladım ve ana makinede SIFIR CPU kullanımı buldum. Bu nedenle,% 100 "yürütme kapağı" nın ana makineninkine eşittir (örneğin 1.87 GigHZ). Ana makinenizin saat hızı ile 800 MHZ arasında bir yüzde alarak, 800 MHZ'e karşılık gelen yüzde değerini bulabileceğinizi düşünüyorum.

Umarım bu yardımcı olur.

İyi şanslar.


9

VMWare ESX ve ESXi'de bir Kaynak Havuzu oluşturabilir ve bu havuz için CPU Kaynaklarını sınırlayabilirsiniz. Bu, Kaynak Havuzu'nda oluşturulan tüm sistemlerin CPU hızını sınırlamanızı sağlar.


Kaynak havuzu seçeneğini okudum ve oyuncuya uygulandığını düşündüm. Ne yazık ki, bu durum böyle değil. Ve ESX / ESxi ücretsiz değil ... Ama denemeyi deneyebilirim ve gerçekten işe yararsa, biraz daha araştırın.
RCC

6
ESXi ücretsizdir. (ve bir kaç karakter daha ...)
Tarnay Kálmán

Gerçekten mi? Nedense öyle olduğunu düşünmedim. Ama düzeltilmiş duruyorum! Bunu gösterdiğin için çok teşekkürler.
RCC


2

Tüm farklı sanallaştırma teknolojileri konusunda uzman olmasam da, böyle bir ayar bulmanız pek mümkün değil. Ancak, bir sanal makineyi genel ana makine işlemlerinin bir yüzdesiyle sınırlamanıza izin veren ayarları (en azından MS hyper-V'de) bulacaksınız. Bu nedenle, 2 GHz hızında çalışan 8 çekirdekli bir ana makineniz varsa, istemci sanal makineyi bir çekirdeğe ve çekirdeğin% 45'inden daha fazla olmayacak şekilde sınırlamayı deneyebilirsiniz.

Ancak, zamanlama döngülerini veya gerçek işlemci hızının devreye girdiği bir şeyi test etmeye çalışıyorsanız, bu çok kaba olur ve uygun olmaz.


Bunu yapan birkaç işlem gördüm - yani işlem başına CPU kullanım yüzdesini sınırlandırdı - ancak yalnızca Linux seçeneklerini görmüştüm. Verilmiş, ben onlara çok bakmadım. MaxMackie'ye verdiğim yanıtta açıklandığı gibi çalıştığım çözüm işe yaramazsa, bu seçenekleri daha ayrıntılı inceleyeceğim.
RCC

Evet, bunun zamanlama döngüleri üzerinde gerçekten kötü bir etkisi olabilir. Her şey% 45'e kadar tam hızda çalışıp çalışmadığını kesinti veya fiilen% 45'te çalışıp çalışmayacağına bağlıdır.
Zan Lynx

2

--cpuexecutioncap <1-100>: Bu ayar, sanal bir CPU'nun ne kadar cpu kullanabileceğini kontrol eder. 50 değeri, tek bir sanal CPU'nun, tek bir ana CPU'nun% 50'sine kadar kullanabileceğini belirtir.


1
Daha fazla bilgi bu cevabı kabul edilebilir kılacaktır.
Ramhound

1

Bunun VirtualBox'ta desteklenmediğini onaylayabilirim. Bununla birlikte, dokümantasyon VMware'in bunu yapıp yapamayacağı konusunda yetersiz görünüyor.

EDIT: VMware için: "Bu, Player ve Server ürünleriyle mümkün değildir, ancak bunun ESXi'de (ücretsiz" çıplak metal hipervizörü "ürünü) ve VMWare Workstation gibi ücretli ürünlerinde bulunduğuna inanıyorum."


Bunu da doğrulayabilirim - VirtualBox'ta her şeyi ayarladıktan sonra bunu keşfettim. Şu anda VMware kullanıyorum ve host.cpukHz'i 800000 ile sınırlandırmak için config.ini dosyasını değiştirmeye çalıştım. Bu, sanal makineyi CPU MHz'nin 800 olduğunu düşünmek üzere kandırıyor gibi görünüyor. ama, umduğum şey bu. Fikirler?
RCC,

Gördüğümden itibaren çalışması gerekir. Sadece aynı yapılandırma dosyasında host.noTSC = "TRUE" ayarladığınızdan emin olun. Bu, CPU saatini yavaşlamadığından emin olmak için düzenler. Ayrıca, konuk işletim sisteminde Seçenekler sekmesine gidin ve sanal makine ile ana işletim sistemi arasında Zaman senkronizasyonunun seçili olduğundan emin olun.
n0pe

Evet, host.noTSc = "TRUE" de var. Vmware player'da vm ile host arasında zaman senkronizasyonunu nerede yapabileceğimi bulamadım ...
RCC

Misafir OS'de çalışıyor olmanız gerektiğinden oldukça eminim
n0pe

1

Bunu CPU sabitlemesi ile simüle edebilirsiniz. Sonra aynı CPU'ya sabitlenmiş bazı CPU bağlı işlemler oluşturun. Tahmini CPU hızı (Gerçek CPU hızı / işlem sayısı).

Bazı kaynak sınırlama yazılımı kaynak yüzdesini sınırlamanıza izin verir. Bu CPU hızını sınırlamayı kolaylaştıracaktır. Bunu yapmak için yedek kaynaklara erişimi devre dışı bırakmanız gerekir.


0

VirtualBOX'ta konuk CPU'nun kullanabileceği ana bilgisayar CPU'sunun% 'sini yapılandırabileceğiniz bir kaydırıcı vardır. Bu yüzde, her bir çekirdek için geçerlidir.

VirtualBOX'ta, her bir çekirdekte farklı hızlara sahip çok çekirdekli, tüm çekirdekler için yalnızca bir kaydırıcı taklit etmenin yolu yoktur.

Kaydırıcıyı% 50 olarak ayarlamak konuk çekirdeğini, ana çekirdeğin 1 / 2'sinde çalıştırmayı sağlar (bir temel temel).

Bu nedenle, ana bilgisayarda on çekirdekli (10 çekirdekli) ve konukta üç çekirdekli (üç çekirdekli) ve konukçunun Y MHz'de çalışırken X MHz'de çalışmasını istiyorsanız, yüzdeyi hesaplamak için çekirdek sayısını yok sayın.

Formül şöyle olabilir: Yüzde = 100 * X / Y

Umarım bu da diğer insanların geleceğe burada gelmelerine yardımcı olur.

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.