14.8. 虚拟机性能监控工具
要确定什么消耗了最多的 VM 资源,以及虚拟机性能的哪方面需要优化,可以使用性能诊断工具,包括通用的和特定于虚拟机的。
默认操作系统性能监控工具
要进行标准性能评估,您可以使用主机和客户机操作系统默认提供的工具:
- 在 RHEL 8 主机上,以 root 用户身份使用 - top工具或 system monitor 应用程序,并在输出中查找- qemu和- virt。这显示了您的虚拟机消耗的主机系统资源量。- 
								如果监控工具显示任何 qemu或virt进程消耗了大量的主机 CPU 或内存量,请使用perf工具进行调查。详情请查看以下信息。
- 
								另外,如果 vhost_net线程进程(如 vhost_net-1234 )被显示为消耗大量主机 CPU 容量,请考虑使用 虚拟网络优化功能,如multi-queue virtio-net。
 
- 
								如果监控工具显示任何 
- 在客户机操作系统上,使用系统上可用的性能工具和应用程序来评估哪些进程消耗了最多的系统资源。 - 
								在 Linux 系统上,您可以使用 top工具。
- 在 Windows 系统中,您可以使用 Task Manager 应用程序。
 
- 
								在 Linux 系统上,您可以使用 
perf kvm
					您可以使用 perf 工具收集并分析有关 RHEL 8 主机性能的特定于虚拟化的统计。要做到这一点:
				
- 在主机上安装 perf 软件包: - yum install perf - # yum install perf- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - perf kvm stat命令之一来显示您的虚拟化主机的 perf 统计信息:- 
								若要实时监控 hypervisor ,请使用 perf kvm stat live命令。
- 
								要记录一段时间内 hypervisor 的 perf 数据,请使用 perf kvm stat record命令激活日志记录。在命令被取消或中断后,数据保存在perf.data.guest文件中,可以使用perf kvm stat report命令进行分析。
 
- 
								若要实时监控 hypervisor ,请使用 
- 分析 - VM-EXIT事件类型及其分发的- perf输出。例如,- PAUSE_INSTRUCTION事件应当不常发生,但在以下输出中,此事件的频繁发生表明主机 CPU 没有很好地处理正在运行的 vCPU。在这种场景下,请考虑关闭某些处于活动状态的虚拟机,从这些虚拟机中删除 vCPU,或者 调优 vCPU 的性能。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - perf kvm stat输出中表明有问题的其它事件类型包括:- 
								INSN_EMULATION- 建议次优化的 虚拟机 I/O 配置 。
 
- 
								
				有关使用 perf 监控虚拟化性能的更多信息,请参阅您系统上的 perf-kvm 手册页。
			
numastat
					要查看系统当前的 NUMA 配置,您可以使用 numastat 工具,该工具通过安装 numactl 软件包来提供。
				
以下显示了一个有 4 个运行虚拟机的主机,各自从多个 NUMA 节点获取内存。这不是 vCPU 性能的最佳方案,并保证调整:
相反,以下显示单个节点为每个虚拟机提供内存,这效率显著提高。