KVM运行时native_write_msr¶
MacBook Pro上运行Arch Linux 的 Studio环境KVM和Docker 上运行Windows 10的KVM虚拟机,感觉性能不佳,使用 top
检查发现虚拟机几乎空载情况下依然消耗了CPU 70%
top - 06:38:17 up 22:08, 5 users, load average: 0.70, 0.91, 1.12
Tasks: 237 total, 1 running, 236 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.1 us, 4.1 sy, 0.0 ni, 90.3 id, 0.0 wa, 0.4 hi, 0.2 si, 0.0 st
MiB Mem : 15923.5 total, 582.5 free, 6878.5 used, 8462.5 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 7864.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14493 nobody 20 0 5011304 4.1g 23856 S 70.1 26.4 143:26.38 qemu-system-x86
543 root 20 0 582072 232040 153984 S 1.0 1.4 23:43.42 Xorg
918 huatai 20 0 521388 62116 40748 S 1.0 0.4 2:26.94 xfce4-terminal
在KVM虚拟机运行时,使用 perf top
可以看到系统最大消耗在内核 native_write_msr
上:
6.32% [kernel] [k] native_write_msr
2.56% [kernel] [k] __fget
2.22% [kernel] [k] do_syscall_64
2.05% [kernel] [k] do_sys_poll
1.97% [kernel] [k] preempt_count_add
1.81% [kvm_intel] [k] vmx_vcpu_run
1.74% [kvm_intel] [k] vmx_vmexit
1.65% [kvm] [k] kvm_arch_vcpu_ioctl_run
1.28% [kernel] [k] _raw_spin_lock_irqsave
1.22% [kernel] [k] psi_task_change
1.13% [kernel] [k] preempt_count_sub
1.11% [kernel] [k] __x86_indirect_thunk_rax
0.98% [kernel] [k] eventfd_poll
0.94% [kernel] [k] __pollwait
0.91% [kernel] [k] _raw_spin_unlock_irqrestore
0.90% [kernel] [k] fput_many
0.86% [kernel] [k] entry_SYSCALL_64
0.85% [kernel] [k] syscall_return_via_sysret
0.84% [kernel] [k] __schedule
0.83% [kernel] [k] menu_select
0.81% [kernel] [k] debug_smp_processor_id
0.79% libglib-2.0.so.0.6200.2 [.] g_main_context_check
0.74% [kernel] [k] switch_mm_irqs_off
0.68% [kernel] [k] __fget_light
0.67% [kernel] [k] enqueue_entity
0.64% [kernel] [k] update_cfs_group
0.57% [kernel] [k] sock_poll
0.54% perf [.] dso__find_symbol
0.52% [kernel] [k] __srcu_read_lock
0.51% [kvm_intel] [k] __vmx_vcpu_run
0.51% [kernel] [k] __rcu_read_unlock
0.48% [kernel] [k] in_lock_functions