Làm thế nào tôi có thể mô phỏng một máy chậm trong VM?


29

Tôi đang thử nghiệm một ứng dụng web nặng AJAX. Tôi phát triển trên máy Mac mới, nhưng tôi sử dụng VmWare Fusion (hiện là 3.1.2) để thử nghiệm trong Windows XP, sử dụng IETester để mô phỏng các phiên bản IE cũ hơn.

Điều này cho phép tôi xem các phiên bản IE cũ hơn sẽ hiển thị trang web như thế nào, nhưng tôi cũng muốn xem trang web sẽ hoạt động như thế nào trên một máy cũ. Tôi thấy trong cài đặt của VM tôi có thể giảm RAM; Có cách nào để giảm tốc độ xử lý không? Làm thế nào khác tôi có thể mô phỏng một máy chậm?

(Tôi cũng sẽ kiểm tra cách mô phỏng kết nối internet chậm .)

Câu trả lời:


17

Luồng giới hạn tốc độ CPU trong máy ảo cung cấp một số lời khuyên:

  • Trên VMWare ESX và ESXi, bạn có thể tạo Nhóm tài nguyên và giới hạn tài nguyên CPU cho nhóm đó. Điều này sẽ cho phép bạn giới hạn tốc độ CPU của bất kỳ hệ thống nào được tạo trong Nhóm tài nguyên đó.
  • Cài đặt trong MS hyper-V cho phép giới hạn một máy ảo đến một phần trăm của toàn bộ máy chủ. Vì vậy, nếu bạn có máy chủ 8 lõi chạy ở tốc độ 2 GHz, bạn có thể thử giới hạn máy ảo của máy khách ở một lõi và không quá 45% lõi.

Virtual PC Guy nhận xét trong Làm chậm các máy ảo :

thiết lập một máy ảo với tối đa 10% tài nguyên CPU trong Máy chủ ảo (chẳng hạn) có nghĩa là nó sẽ chỉ được phép chạy trên CPU trong 10% tổng thời gian lập lịch của hệ thống trong một khoảng thời gian. Trong khi máy ảo đang chạy, nó vẫn chạy ở tốc độ xử lý đầy đủ (mặc dù ít thường xuyên hơn so với khi chạy).

Ông đề nghị sử dụng thay vì Turbo để làm chậm VM. Ông cũng đề nghị sử dụng các sản phẩm mô phỏng, chậm hơn nhiều so với ảo hóa, chẳng hạn như DOSBoxBochs .


7

Bạn có thể sử dụng cpulimit để giới hạn thời gian xử lý được phân bổ cho quy trình của bạn. Điều này có sẵn trong kho cho hầu hết các bản phân phối linux.

Cách sử dụng rất đơn giản, ví dụ nếu VM của bạn đang chạy như tiến trình 12345 và bạn muốn chỉ phân bổ 5% chu kỳ CPU cho nó, hãy sử dụng các tùy chọn sau:

$ cpulimit -l 5 -p 12345

4

Nó thực sự không thể phù hợp với hiệu suất của một máy cũ. Ngay cả khi bạn quản lý để điều tiết mức sử dụng CPU và kích thước bộ nhớ , bạn sẽ điều chỉnh tốc độ FSB hoặc tốc độ bộ nhớ như thế nào?

Phải nói rằng, bạn có thể sử dụng công cụ quản lý quy trình của máy Mac để hạn chế việc sử dụng CPU của chính VMWare Fusion. Nếu bạn làm điều này đủ tốt để mô phỏng một máy cũ hơn, thì toàn bộ ứng dụng VMWare có thể sẽ chạy rất chậm - giống như một máy sẵn sàng XP cổ điển.

Tôi không biết chương trình Mac đồ họa dành cho việc này là gì, nhưng hãy xem máy Mac của bạn có hỗ trợ renicelệnh không: Mở một thiết bị đầu cuối và gõ man reniceđể đọc về cách thức hoạt động của nó trên máy Mac.

Nhân tiện, các máy sẵn sàng XP có thể rất rẻ ngay bây giờ. Một chiếc thật có thể có thể có giá ~ 75 đô la. Sau đó, bạn có thể chuyển máy ảo của mình sang máy thật ...


2
Hà! Ý tưởng thú vị để mua một máy thực tế. Vì toàn bộ ý tưởng là mô phỏng một máy tính cũ, mua một máy tính cũ là một lựa chọn khá rẻ. :)
Nathan Long

2

Điều này thực sự phụ thuộc vào mức độ chậm của máy mà bạn muốn mô phỏng. Nếu bạn đẩy XP trở lại 128 MB RAM, nó sẽ rất chậm, đến mức tôi không chắc liệu tốc độ của bộ xử lý ảo có thực sự phù hợp hay không. Bạn cũng có thể chạy các tệp VM của mình khỏi ổ cứng ngoài USB1 cũ (xem bạn có thể tìm thấy ổ 4200 RPM không). Điều đó sẽ làm mọi thứ chậm lại.


2

Một cách chắc chắn để làm cho VM chậm là khởi động càng nhiều bản sao của nó càng tốt cùng với nó!

Bộ xử lý, FSB, RAM và tất cả các thành phần nhanh khác của máy của bạn sẽ được cắt và xắt nhỏ giữa các máy ảo khác (Miễn là bạn có chúng làm gì đó chuyên sâu - Ví dụ như một trong những trình bảo vệ màn hình openGL), và bạn sẽ cảm thấy như thế bạn lại vào năm 1990 ...


Đơn giản và khá hiệu quả.
cuộn

1

Cài đặt một tiện ích nhỏ trong máy khách XP VM để điều khiển tần số CPU bằng cách sử dụng chuyển đổi tần số động tích hợp của XP. Ví dụ: một tiện ích như SpeedswitchXP . Tôi chưa bao giờ thử một cái gì đó như thế này và có thể có vấn đề nếu CPU ảo mà VMWare trình bày cho VM khách không hỗ trợ chuyển đổi tần số động.


1
Tôi sợ điều này sẽ ít ảnh hưởng đến VM, trong đó CPU chỉ được mô phỏng.
harrymc

1
Vâng, tôi không nghĩ việc thay đổi tần số là một lựa chọn; nó sẽ không hoạt động (có khả năng), hoặc điều tiết toàn bộ máy chủ os (không thể?).
jpaugh

0

Tôi sẽ giải trí ý tưởng sử dụng một chuỗi vòng lặp vô hạn với lệnh ngủ có thể điều chỉnh và đặt mức độ ưu tiên của quy trình. Nếu bạn muốn tôi tát vào nhau một đoạn mã C nhanh chóng hãy cho tôi biết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.