Chúng tôi đang sử dụng Ubuntu 12.04 với các tham số sau:
- Dell R910
- Hạt nhân 3.2.0-25-chung # 40-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux
- kvm 1: 84 + dfsg-0ubfox16 + 1.0 + noroms + 0ubfox13
- qemu-kvm 1.0 + noroms-0ubfox13
- qemu-common 1.0 + noroms-0ubfox13
- qemu-kvm 1.0 + noroms-0ubfox13
- 4 x CPU Intel (R) Xeon (R) E7- 4870 @ 2.40GHz (mỗi lõi có 10 lõi vật lý, bật HT và Intel VT)
- Các khách Windows hiện không có VirtIO, nhưng điều đó sẽ sớm thay đổi
Chúng tôi đang chạy một số khách Windows trên máy này, một trong số họ là Windows 2003 32 Bit, một người khác là Windows 2008 (64 Bit). Chúng tôi hiện đang vật lộn với các vấn đề về hiệu năng và chơi xung quanh với các mô hình CPU.
Chúng tôi thường sử dụng "qemu-system-x86_64 cho khách Windows 32 Bit của mình, ví dụ:
/usr/bin/qemu-system-x86_64 -S -M pc-1.0 -cpu qemu32 -enable-kvm -m 4096 -smp 4,sockets=4,cores=1,threads=1 [...]
Hiệu suất của khách này hóa ra hơi thấp. Chúng tôi chưa chạy bất kỳ điểm chuẩn nào, nhưng giả sử rằng việc sao chép một lượng lớn dữ liệu (tệp) trong VM từ thư mục này sang thư mục khác sẽ nhanh hơn rất nhiều khi chúng tôi chuyển mô hình CPU từ "-cpu qemu32" sang "-cpu Nehalem ". Các tệp mất khoảng 2: 40h để sao chép ngay bây giờ sao chép trong vòng 40 phút. Tất nhiên đây không phải là một bài kiểm tra chất lượng cao và có nhiều chỗ để có một nỗ lực chuyên nghiệp hơn. Nhưng đây là một chỉ số rõ ràng rằng việc chọn mô hình CPU chính xác có thể ảnh hưởng lớn đến hiệu suất của khách.
Bây giờ tôi đã tò mò và chạy:
qemu-x86_64 -cpu ?
x86 [n270]
x86 [athlon]
x86 [pentium3]
x86 [pentium2]
x86 [pentium]
x86 [486]
x86 [coreduo]
x86 [kvm32]
x86 [qemu32]
x86 [kvm64]
x86 [core2duo]
x86 [phenom]
x86 [qemu64]
Và:
kvm -cpu ?model
x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron)
x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron)
x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron)
x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7)
x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2)
x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2)
x86 [n270] Intel(R) Atom(TM) CPU N270 @ 1.60GHz
x86 [athlon] QEMU Virtual CPU version 1.0
x86 [pentium3]
x86 [pentium2]
x86 [pentium]
x86 [486]
x86 [coreduo] Genuine Intel(R) CPU T2600 @ 2.16GHz
x86 [kvm32] Common 32-bit KVM processor
x86 [qemu32] QEMU Virtual CPU version 1.0
x86 [kvm64] Common KVM processor
x86 [core2duo] Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
x86 [phenom] AMD Phenom(tm) 9550 Quad-Core Processor
x86 [qemu64] QEMU Virtual CPU version 1.0
Với tất cả các phiên bản khác nhau này, thật khó để đoán ra. "Nehalem" dường như là người biểu diễn nhiều nhất trong danh sách đó. Bây giờ tôi tự hỏi, làm thế nào để biết mô hình CPU nào là tốt nhất cho khách của tôi? Duyệt Internet, tôi tìm thấy các nguồn tài nguyên sau:
- http://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
- http://www.linux-kvm.org/page/Tuning_KVM
Khi tôi đọc các trang web đó một cách chính xác, họ tuyên bố rằng "máy chủ -cpu" có thể mang lại hiệu suất tốt nhất. Tôi chưa có bất kỳ lo lắng nào về việc di chuyển, vì cả hai máy chủ KVM đều được trang bị như nhau (chính xác là cùng một phần cứng).
Vì vậy, quản trị viên KVM có kinh nghiệm khuyên gì? Có một quy tắc vàng hoặc thậm chí là một ma trận, như "mô hình này là tốt nhất cho hệ điều hành khách đó" không?
Tôi xin lỗi nếu tôi có thể tự mình tìm hiểu thông tin này - tôi đã chạy nhiều tìm kiếm khác nhau trên Google và duyệt qua nhiều trang web. Tôi đã không thể tìm thấy một cái gì đó trả lời câu hỏi của tôi.