Saya telah ditugaskan dengan masalah yang sama dan saya menginstal Oracle VirtualBox pada Windows 7 (sebagai tuan rumah) dan Ubuntu (sebagai tamu). Saya menggunakan laptop mandiri, HP EliteBook 8540W dengan Intl Core i7 berjalan pada 1,87 GigHZ dan 8Gig RAM.
Dengan anggapan instalasi Anda berfungsi dengan baik, pada mesin Guest Anda (misalnya dalam kasus saya, Ubuntu) pilih "Pengaturan ..." dari "Mesin" di menu utama; pilih "System" dan klik pada tab "Processor". Anda dapat menyesuaikan kecepatan jam (label, "Cap Eksekusi") dengan menggeser indikator pada bilah hingga 1 persen.
Saya berasumsi bahwa OS host (Windows 7 dalam kasus saya) tidak mengkonsumsi siklus clock (Saya mengkonfirmasi ini dengan memeriksa "Task Manager" dan saya menemukan NOL penggunaan CPU pada mesin host. Yaitu windows 7 dalam kasus saya). Karena itu, saya mengasumsikan 100% "eksekusi cap" sama dengan mesin host (mis. 1,87 GigHZ). Saya pikir dengan mengambil persentase antara kecepatan jam mesin host Anda dan 800 MHZ, Anda dapat mengetahui nilai persentase yang sesuai dengan 800 MHZ.
Saya harap ini membantu.
Semoga berhasil.
Dikompilasi dan digunakan: cpulimit yang bekerja seperti pesona untuk memperlambat VM.
sumber
Meskipun saya bukan ahli dalam semua teknologi virtualisasi yang berbeda, saya pikir tidak mungkin Anda akan menemukan pengaturan seperti itu. Namun, Anda akan menemukan pengaturan (setidaknya dalam MS hyper-V) yang memungkinkan Anda membatasi mesin virtual hingga persen dari keseluruhan tindakan mesin host. Jadi jika Anda memiliki 8 core host yang berjalan pada 2 GHz, Anda dapat mencoba membatasi mesin virtual klien menjadi satu core, dan tidak lebih dari 45% dari core.
Namun, ini akan sangat kasar dan tidak cocok jika Anda mencoba untuk menguji timing loop atau sesuatu di mana kecepatan prosesor yang sebenarnya ikut bermain.
sumber
--cpuexecutioncap <1-100>: Pengaturan ini mengontrol berapa banyak waktu CPU yang dapat digunakan oleh CPU virtual. Nilai 50 menyiratkan CPU virtual tunggal dapat menggunakan hingga 50% dari CPU host tunggal.
sumber
Saya dapat mengonfirmasi bahwa ini tidak didukung di VirtualBox. Namun, dokumentasi tampaknya ragu apakah VMware dapat melakukan ini atau tidak.
EDIT: Untuk VMware: "Ini tidak mungkin dengan produk Player dan Server, tapi saya percaya itu ada di ESXi (produk" bare-metal hypervisor "gratis) dan produk berbayar seperti VMWare Workstation."
sumber
Anda mungkin dapat mensimulasikan ini dengan pinning CPU. Kemudian buat beberapa proses yang terikat CPU disematkan ke CPU yang sama. Perkiraan kecepatan CPU adalah (Kecepatan CPU nyata / # proses).
Beberapa perangkat lunak yang membatasi sumber daya akan memungkinkan Anda untuk membatasi persentase sumber daya. Ini akan membuatnya lebih mudah untuk membatasi kecepatan CPU. Untuk melakukannya, Anda perlu menonaktifkan akses ke sumber daya cadangan.
sumber
Pada VirtualBOX ada slider di mana Anda dapat mengkonfigurasi% CPU host yang dapat digunakan CPU tamu. Persentase tersebut berlaku untuk setiap inti.
Pada VirtualBOX tidak ada cara untuk mensimulasikan multi-core dengan kecepatan berbeda pada setiap core, hanya satu slider untuk semua core.
Mengatur slider pada 50% akan membuat core tamu berjalan pada 1/2 core host (a per core basics).
Jadi jika Anda memiliki deca core (10 core) pada host dan tri core pada guest (tiga), dan Anda ingin guest menjalankan pada X MHz sementara host berjalan pada Y MHz, abaikan saja jumlah core untuk menghitung persen.
Rumusnya adalah: Persen = 100 * X / Y
Semoga ini juga membantu orang lain datang di sini di masa depan.
sumber