Chúng tôi có một cụm Heartbeat / DRBD / Pacemaker / KVM / Qemu / libvirt bao gồm hai nút. Mỗi nút chạy Ubuntu 12.04 64 Bit với các gói / phiên bản sau:
- Hạt nhân 3.2.0-32-chung # 51-Ubuntu SMP
- DRBD 8.3.11
- qemu-kvm 1.0 + noroms-0ubfox14.3
- sinh viên 0.9.13
- máy tạo nhịp tim 1.1.7
- nhịp tim 3.0.5
Các khách ảo đang chạy Ubuntu 10.04 64 Bit và Ubuntu 12.04 64 Bit. Chúng tôi sử dụng tính năng libvirt để chuyển các khả năng của CPU chủ cho khách ảo để đạt được hiệu suất CPU tốt nhất.
Bây giờ đây là một thiết lập phổ biến trên cụm này:
- VM "giám sát" có 4 vCPUs
- VM "giám sát" sử dụng ide làm giao diện đĩa (chúng tôi hiện đang chuyển sang VirtIO vì lý do rõ ràng)
Gần đây chúng tôi đã chạy một số thử nghiệm đơn giản. Tôi biết họ không chuyên nghiệp và không đạt tiêu chuẩn cao, nhưng họ đã thể hiện một xu hướng mạnh mẽ:
Nút A đang chạy VM "bla" Nút Node đang chạy VM "giám sát"
Khi chúng tôi đồng bộ hóa một tệp từ VM "bla" sang VM "giám sát", chúng tôi chỉ đạt được 12 MB / s. Khi chúng tôi thực hiện một dd đơn giản if = / dev / null of = / tmp / blubb bên trong "giám sát" VM, chúng tôi đạt được khoảng 30 MB / s.
Sau đó, chúng tôi đã thêm 4 vCPU nữa vào "giám sát" VM và khởi động lại nó. VM "giám sát" hiện có 8 vCPUs. Chúng tôi đã chạy lại các thử nghiệm với các kết quả sau: Khi chúng tôi đồng bộ hóa một tệp từ VM "bla" sang VM "giám sát", chúng tôi hiện đạt được 36 MB / s. Khi chúng tôi thực hiện một dd đơn giản if = / dev / null of = / tmp / blubb bên trong "giám sát" VM, giờ đây chúng tôi đạt được khoảng 61 MB / s.
Đối với tôi, hiệu ứng này là khá đáng ngạc nhiên. Làm thế nào mà việc thêm nhiều CPU ảo cho khách ảo này tự động có nghĩa là hiệu năng đĩa bên trong VM nhiều hơn?
Tôi không có một lời giải thích cho điều này và sẽ thực sự đánh giá cao đầu vào của bạn. Tôi muốn hiểu nguyên nhân khiến hiệu suất này tăng lên vì tôi có thể tái tạo hành vi này 100%.
kvm_trace
để xem số lượng IO_Exits
thay đổi khi bạn thay đổi số CPU. Tôi đoán đó là vì bạn đang sử dụng IDE, được lên lịch với các CPU khách. Với virtio, hiệu suất phải nhất quán và khi mặt phẳng dữ liệu ở trạng thái qemu, nó sẽ có được sự tăng cường mạnh mẽ. Một dự đoán khác có thể là ở chỗ bạn đang sử dụng một bản phân phối được biết đến với ngăn xếp ảo hóa lỗi.