Bagaimana saya bisa mensimulasikan mesin lambat dalam VM?

29

Saya sedang menguji aplikasi web AJAX-berat. Saya mengembangkan pada Mac baru, tetapi saya menggunakan VmWare Fusion (saat ini 3.1.2) untuk menguji pada Windows XP, menggunakan IETester untuk mensimulasikan versi IE yang lebih lama.

Ini memungkinkan saya melihat bagaimana versi IE yang lebih lama akan membuat situs, tetapi saya juga ingin melihat bagaimana kinerja situs pada mesin yang lebih tua. Saya melihat dalam pengaturan VM bahwa saya dapat mengurangi RAM; apakah ada cara untuk juga menurunkan kecepatan prosesor? Bagaimana lagi saya bisa mensimulasikan mesin lambat?

(Saya juga akan memeriksa cara mensimulasikan koneksi internet yang lambat .)

Nathan Long
sumber

Jawaban:

17

Utas Membatasi kecepatan CPU di mesin virtual menawarkan beberapa saran:

  • Pada VMWare ESX dan ESXi Anda bisa membuat Resource Pool dan membatasi Sumber Daya CPU untuk pool itu. Ini akan memungkinkan Anda membatasi kecepatan CPU dari semua sistem yang dibuat di Resource Pool tersebut.
  • Pengaturan dalam MS hyper-V memungkinkan untuk membatasi mesin virtual hingga persen dari keseluruhan 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.

Guy PC Virtual berkomentar dalam Memperlambat mesin virtual yang:

mengatur mesin virtual dengan maksimum 10% sumber daya CPU di bawah Virtual Server (misalnya) berarti bahwa itu hanya akan diizinkan berjalan pada CPU untuk 10% dari total waktu penjadwalan sistem selama periode waktu. Ketika mesin virtual sedang berjalan, ia masih berjalan dengan kecepatan prosesor penuh (meskipun lebih jarang daripada yang seharusnya dijalankan).

Dia menyarankan untuk menggunakan Turbo untuk memperlambat VM. Dia juga menyarankan menggunakan produk emulasi, yang jauh lebih lambat daripada virtualisasi, seperti DOSBox dan Bochs .

harrymc
sumber
7

Anda dapat menggunakan cpulimit untuk membatasi jumlah waktu pemrosesan yang dialokasikan untuk proses Anda. Ini tersedia di repositori untuk sebagian besar distribusi linux.

Penggunaannya sangat sederhana, jika misalnya VM Anda berjalan sebagai proses 12345 dan Anda ingin mengalokasikan hanya 5% dari siklus CPU untuk itu, gunakan opsi berikut:

$ cpulimit -l 5 -p 12345
pfrenssen
sumber
4

Benar-benar tidak mungkin untuk mencocokkan kinerja mesin yang lebih lama secara andal. Bahkan jika Anda berhasil membatasi penggunaan CPU dan ukuran memori , bagaimana Anda akan mengurangi kecepatan FSB atau kecepatan memori ?

Karena itu, Anda dapat menggunakan alat manajemen proses dari Mac untuk membatasi penggunaan CPU dari VMWare Fusion itu sendiri. Jika Anda melakukan ini cukup baik untuk meniru mesin yang lebih tua, maka seluruh aplikasi VMWare mungkin akan berjalan sangat lambat - seperti mesin XP-ready vintage.

Saya tidak tahu apa program grafis Mac untuk ini, tetapi lihat apakah Mac Anda mendukung reniceperintah: Buka terminal dan ketik man reniceuntuk membaca tentang cara kerjanya pada Mac.

Omong-omong, mesin XP-ready mungkin murah sekali saat ini. Yang asli mungkin bisa didapat seharga ~ $ 75. Kemudian, Anda dapat mentransfer mesin virtual Anda ke yang asli ...

jpaugh
sumber
2
Ha! Ide menarik untuk membeli mesin yang sebenarnya. Karena seluruh ide adalah meniru komputer lama, membeli komputer lama adalah pilihan yang cukup murah. :)
Nathan Long
2

Ini sangat tergantung pada seberapa lambat mesin yang ingin Anda tiru. Jika Anda memutar XP kembali ke 128 MB RAM, itu akan sangat lambat, ke titik di mana saya tidak yakin apakah kecepatan prosesor virtual akan benar-benar relevan. Anda juga dapat menjalankan file VM dari hard drive eksternal USB1 lama (lihat apakah Anda dapat menemukan drive 4200 RPM). Itu akan memperlambat segalanya.

Gereja
sumber
2

Salah satu cara jitu untuk membuat VM lambat adalah boot sebanyak mungkin klon yang Anda bisa!

Prosesor Anda, FSB, RAM dan semua komponen cepat lainnya dari mesin Anda akan diiris dan dipotong di antara VM lainnya (Selama Anda meminta mereka melakukan sesuatu yang intensif - Salah satu screensaver openGL misalnya), dan Anda akan merasa seperti Anda berada di tahun 1990 lagi ...

Haqa
sumber
Sederhana dan cukup efektif.
gulungan
1

Instal sedikit utilitas pada VM tamu XP untuk mengontrol frekuensi CPU menggunakan switching frekuensi dinamis bawaan XP. Misalnya, utilitas seperti SpeedswitchXP . Saya belum pernah mencoba sesuatu seperti ini sendiri, dan mungkin ada masalah yang berpotensi jika CPU virtual yang VMWare berikan kepada tamu VM tidak mendukung perpindahan frekuensi dinamis.

queso
sumber
1
Saya khawatir ini akan memiliki sedikit efek untuk VM, di mana CPU hanya ditiru.
harrymc
1
Ya, saya tidak berpikir mengubah frekuensi adalah pilihan; itu tidak akan berhasil (mungkin), atau mencekik seluruh host os (tidak mungkin?).
jpaugh
0

Saya akan menghibur gagasan menggunakan utas loop tak terbatas dengan perintah sleep merdu dan menetapkan prioritas proses. Jika Anda ingin saya menampar sepotong kode C cepat, beri tahu saya.

RobotHumans
sumber