Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
第 2 章 性能监控工具
本章论述了用于监控客户机虚拟机环境的工具。
2.1. perf kvm
您可以使用 perf 命令和 kvm 选项从主机收集和分析客户机操作系统统计信息。perf 软件包提供 perf 命令。它通过运行以下命令来安装:
# yum install perf
要在主机中使用 perf kvm,您必须有权访问客户机中的
/proc/modules
和 /proc/kallsyms
文件。请参阅 过程 2.1, “将 /proc 文件从 guest 复制到主机”,将文件传送到主机中,并对文件运行报告。
过程 2.1. 将 /proc 文件从 guest 复制到主机
重要
如果您直接复制所需的文件(例如,使用 scp),您将只复制零长度的文件。这个步骤描述了如何先将客户机中的文件保存到临时位置(使用 cat 命令),然后将它们复制到主机,供 perf kvm 使用。
登录到客户端并保存文件
登录到客户端并将/proc/modules
和/proc/kallsyms
保存到临时位置/tmp
中:# cat /proc/modules > /tmp/modules # cat /proc/kallsyms > /tmp/kallsyms
将临时文件复制到主机
从 guest 注销后,运行以下命令的 scp 命令将保存的文件复制到主机。如果主机名和 TCP 端口不同,您应该替换它们:# scp root@GuestMachine:/tmp/kallsyms guest-kallsyms # scp root@GuestMachine:/tmp/modules guest-modules
现在,主机上 guest(guest-kallsyms
和guest-modules
)有两个文件,可供 perf kvm 使用。使用 perf kvm 记录和报告事件
使用在前面的步骤中获取的文件,现在有可能记录和报告客户机、主机或两者中的事件。运行以下命令:# perf kvm --host --guest --guestkallsyms=guest-kallsyms \ --guestmodules=guest-modules record -a -o perf.data
注意如果命令中同时使用 --host 和 --guest,则输出将存储在perf.data.kvm
中。如果只使用 --host,则该文件将命名为perf.data.host
。同样,如果只使用 --guest,则该文件将命名为perf.data.guest
。按 Ctrl-C 停止记录。报告事件
以下示例使用由记录进程获取的 文件,并将输出重定向到新文件,从而分析
。perf kvm --host --guest --guestmodules=guest-modules report -i perf.data.kvm \ --force > analyze
查看分析
文件的内容,以检查记录的事件:# cat analyze # Events: 7K cycles # # Overhead Command Shared Object Symbol # ........ ............ ................. ......................... # 95.06% vi vi [.] 0x48287 0.61% init [kernel.kallsyms] [k] intel_idle 0.36% vi libc-2.12.so [.] _wordcopy_fwd_aligned 0.32% vi libc-2.12.so [.] __strlen_sse42 0.14% swapper [kernel.kallsyms] [k] intel_idle 0.13% init [kernel.kallsyms] [k] uhci_irq 0.11% perf [kernel.kallsyms] [k] generic_exec_single 0.11% init [kernel.kallsyms] [k] tg_shares_up 0.10% qemu-kvm [kernel.kallsyms] [k] tg_shares_up [output truncated...]