Як я можу імітувати повільну машину у ВМ?


29

Я тестую AJAX-важкий веб-додаток. Я розробляю новий Mac, але використовую VmWare Fusion (на даний момент 3.1.2) для тестування в Windows XP, використовуючи IETester для імітації старих версій IE.

Це дозволяє мені бачити, як старіші версії IE відображатимуть сайт, але я також хотів би побачити, як він буде працювати на більш старій машині. Я бачу в налаштуваннях VM, що я можу зменшити оперативну пам'ять; чи є спосіб також набрати швидкість процесора? Як ще я можу імітувати повільну машину?

(Я також збираюся перевірити, як імітувати повільний Інтернет .)

Відповіді:


17

Нитка, що обмежує швидкість процесора у віртуальній машині, пропонує поради:

  • На VMWare ESX та ESXi ви можете створити пул ресурсів і обмежити ресурси CPU для цього пулу. Це дозволить обмежити швидкість процесора будь-яких систем, створених у цьому ресурсному пулі.
  • Налаштування в MS гіпер-V дозволяють обмежити віртуальну машину відсотком від загального хоста. Отже, якщо у вас 8-ядерний хост, який працює на частоті 2 ГГц, ви можете спробувати обмежити віртуальну машину клієнта одним ядром, і не більше 45% ядра.

Хлопець із віртуальних ПК зазначає уповільнення віртуальних машин, які:

якщо встановити віртуальну машину з максимумом 10% ресурсу процесора під Віртуальним сервером (наприклад), це означає, що на ЦП буде дозволено запускати лише 10% від загального часу планування системи протягом певного періоду часу. Поки віртуальна машина працює, вона все ще працює з повною швидкістю процесора (хоча і рідше, ніж це було б інакше).

Він пропонує замість Turbo використати для уповільнення роботи VM. Він також пропонує використовувати продукти емуляції, які значно повільніші, ніж віртуалізація, наприклад DOSBox та Bochs .


6

Ви можете використовувати cpulimit, щоб обмежити кількість часу обробки, виділеного на ваш процес. Це доступно у сховищах для більшості дистрибутивів Linux.

Використання дуже просте, якщо, наприклад, ваш VM працює як процес 12345, і ви хочете виділити йому лише 5% циклів процесора, використовуйте наступні параметри:

$ cpulimit -l 5 -p 12345

4

Насправді неможливо надійно співставити продуктивність старшої машини. Навіть якщо вам вдасться придушити використання процесора та розмір пам’яті , як ви придушите швидкість FSB або швидкість пам’яті ?

Сказавши це, ви можете скористатися інструментом управління процесами на Mac, щоб обмежити використання процесором самого VMWare Fusion. Якщо ви зробите це досить добре, щоб імітувати старішу машину, то весь додаток VMWare, ймовірно, буде працювати дуже повільно - як і старовинна машина, готова до XP.

Я не знаю, що для цього графічна програма Mac, але подивіться, чи підтримує ваш Mac reniceкоманду: Відкрийте термінал і введіть, man reniceщоб прочитати, як він працює на Mac.

До речі, машини, готові до XP, зараз, мабуть, дешеві. Справжню можна було б отримати за 75 доларів. Тоді ви можете перенести свою віртуальну машину на справжню ...


2
Га! Цікава ідея придбати фактичну машину. Оскільки вся ідея полягає у емуляції старого комп’ютера, придбання старого комп’ютера - досить дешевий варіант. :)
Натан Лонг

2

Це дійсно залежить від того, наскільки повільно працює машина, яку ви хочете наслідувати. Якщо ви повернете XP на 128 Мб оперативної пам’яті, він буде болісно повільним, до того моменту, коли я не впевнений, чи дійсно буде швидкість віртуального процесора. Ви також можете запустити файли VM зі старого зовнішнього жорсткого диска USB1 (див., Чи можна знайти накопичувач 4200 RPM). Це повинно уповільнити справи.


2

Одним із надійних способів зробити повільний VM є завантаження стільки клонів, скільки ви можете уздовж нього!

Ваш процесор, FSB, оперативна пам’ять та всі інші швидкі компоненти вашої машини будуть нарізані та нарізані кубиками між іншими віртуальними машинами (до тих пір, поки ви будете робити щось інтенсивне - наприклад, одну із заставки OpenGL), і ви відчуватимете, як ви знову в 1990 році ...


Простий і досить ефективний.
котиться

1

Встановіть невелику утиліту в гостьовий XP VM для управління частотою процесора за допомогою вбудованої динамічної комутації частоти XP. Наприклад, утиліта на зразок SpeedswitchXP . Я ніколи сам не пробував подібного, і потенційно можуть виникнути проблеми, якщо віртуальний процесор, який VMWare подає гостьовій машині, не підтримує динамічну комутацію частоти.


1
Я побоююся, що це матиме незначний ефект для VM, де процесор лише імітується.
harrymc

1
Так, я не думаю, що зміна частоти є варіантом; це або не спрацює (ймовірно), або заглушить весь хост os (неможливо?).
jpaugh

0

Я б розважав над ідеєю використання нескінченної нитки циклу з регульованою командою сну і встановлював пріоритет процесу. Якщо ви хочете, щоб я ляснув разом швидкий шматок коду С, дайте мені знати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.