Sử dụng CPU của KVM


9

Tôi có một máy chủ linux với 4 máy khách linux KVM. Tất cả các khách đều khá nhàn rỗi, có tải <0,1 bên trong khách.

Bây giờ, nếu tôi thực hiện toptrên máy chủ, mỗi quy trình KVM đang sử dụng khoảng 30% CPU.

Đây có phải là một hành vi bình thường? Tôi hy vọng máy chủ sẽ cần ít CPU hơn chỉ để lưu trữ một vị khách nhàn rỗi.

Nếu nó là bình thường, lý do cho điều này là gì?

Nếu nó không bình thường, vấn đề có thể là gì?


Bạn đang sử dụng bản phân phối Linux nào? Debian, Ubuntu, CentOS hay cái gì khác?
slm

Chủ nhà đang chạy một fedora hiện tại, khách SLES 11.2 cũ hơn. Kernel là 3.6.10-4.fc18.x86_64 trên máy chủ và 3.0.13-0.27-mặc định trên máy khách.
michas

Câu trả lời:


6

Trở nên hoài nghi tôi có thể nói đó là "bình thường" đối với khách Windows nhưng không dành cho khách Linux (ít nhất là tôi chưa bao giờ thấy một người nào cư xử như vậy).

Với Windows, nó phụ thuộc rất nhiều vào các ứng dụng đang chạy (gần nhàn rỗi). Một XP hoặc W2K đơn giản (tôi chưa có kinh nghiệm với các phiên bản mới hơn trong KVM) gây ra 10% đến 20% trên máy chủ (được hiển thị khoảng 0% bên trong) nhưng máy chủ MS SQL có được điều này dễ dàng trên 30%. Điều này dường như có liên quan đến truy cập hẹn giờ và / hoặc ACPI bằng cách nào đó. Nhưng ngay cả trong một máy ảo không ACPI, tôi chưa bao giờ có Windows dưới 10% trên máy chủ.

Chỉnh sửa 1 (tích hợp ý kiến)

Đầu ra của cat /sys/devices/system/clocksource/clocksource0/current_clocksource(trong khách) là gì? Đó phải là đồng hồ kvm. Kiểm tra cấu hình kernel của bạn (/proc/config.gz) để biết CONFIG_PARAVIRT_CLOCK và CONFIG_KVM_CLOCK.

Đây là danh sách các tùy chọn cấu hình kernel có liên quan đến KVM .


Chỉ có khách linux trong trường hợp của tôi. (câu hỏi được cập nhật)
michas

2
@michas Oh boy, bạn đã phá hỏng định kiến ​​yêu quý của tôi ... Đó là VM chế độ văn bản hay họ có X? Đầu ra của là cat /sys/devices/system/clocksource/clocksource0/current_clocksourcegì?
Hauke ​​Laging

current_clocksource là acpi_pmtrong khách và tsctrên máy chủ. Không có X nhưng một máy chủ ứng dụng java và DB tiên tri đang chạy trong mỗi khách.
michas

@michas Điều đó nên được kvm-clockthay thế (trong khách). Tôi không bao giờ phải cấu hình rõ ràng. Kiểm tra cấu hình kernel của bạn ( /proc/config.gz) cho CONFIG_PARAVIRT_CLOCKCONFIG_KVM_CLOCK.
Hauke ​​Laging

1
Cả hai đều được đặt thành y. Đặt current_clocksource để kvm-clocklàm cho mọi thứ tốt hơn. Bây giờ mỗi quy trình KVM là khoảng 20 phần trăm. Hệ thống đã được chuyển sang KVM từ thiết lập hộp ảo trước đó. Có vẻ như một số cài đặt vẫn từ thiết lập cũ ...
michas

0

Tôi sẽ kiểm tra để đảm bảo rằng các khách KVM được cung cấp để họ có thể sử dụng tất cả các tài nguyên của máy chủ (CPU, RAM, v.v.). Thông thường, khách KVM chỉ được phân bổ nói 1-2 CPU (lõi) trên một hệ thống có thể chứa nhiều hơn nữa.

Điều này có nghĩa là bạn không so sánh chính xác điều tương tự khi xem tài nguyên của chủ nhà so với nội bộ của một khách KVM cụ thể.

Ví dụ

Các máy chủ lưu trữ như sau:

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
Thread(s) per core:    2
Core(s) per socket:    6
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               1200.000
BogoMIPS:              6404.04
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K
NUMA node0 CPU(s):     0-11

Trong khi một trong những vị khách KVM có điều này:

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 6
Stepping:              3
CPU MHz:               3202.024
BogoMIPS:              6404.04
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              4096K
NUMA node0 CPU(s):     0

1
Tương tự ở đây: 8 lõi trên máy chủ và 4 lõi cho mỗi khách. - Nhưng tôi không thấy, làm thế nào điều đó dẫn đến tải đáng kể từ một người khách nhàn rỗi.
michas
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.