💻 使用 perf KVM 模块进行性能统计分析

Linux perf 工具提供了一个专用的 KVM 模块(perf kvm),它集成了性能统计(stat)功能,用于收集和报告 KVM 虚拟机 VCPU 退出(VM-Exit)事件的详细信息,是诊断虚拟化性能瓶颈的重要工具。

🚨 运行要求与权限

由于 KVM 模块需要访问内核的跟踪点(Tracepoints),因此**必须使用 sudo(root 权限)**运行所有 recordreport 命令,否则会导致权限不足或数据文件为空。

1. 录制性能数据(perf kvm stat record

在开始录制之前,请确保你的 KVM 虚拟机(Guest OS)正在运行,并且正在执行你想要分析的工作负载。

核心原则:限制录制时间,以避免生成过于庞大的数据文件,导致分析时间过长。

Bash

# 启动 KVM 虚拟机后,在宿主机终端执行此命令。
# 此示例将录制 KVM 事件 10 秒。
sudo perf kvm stat record sleep 10

# 提示:在 record 运行的 10 秒内,确保在虚拟机内进行操作,
# 以便 perf 捕获到活跃的 KVM 退出事件。

perf record 将自动停止并在当前目录下生成包含性能数据的记录文件(通常是 perf.data.guestperf.data)。

2. 生成性能报告(perf kvm stat report

数据收集完成后,使用 report 子命令来解析和展示收集到的数据。此步骤也需要 sudo 权限。

Bash

# 在 record 命令停止后,在同一目录下执行此命令。
sudo perf kvm stat report

3. 分析报告界面

执行 report 命令后,你将进入一个交互式终端界面,其中会展示 KVM VCPU 的退出统计分析。

报告的关键分析项包括:

列名含义用途
VM-EXITVCPU 退出到宿主机内核的原因(如 EPT 违规、IO 指令、HLT 指令等)。定位虚拟机与宿主机交互最频繁的操作。
Samples发生的总次数。衡量每种退出事件的频率。
Samples%该退出事件占总退出事件的百分比。快速识别主要的退出类型。
Time%宿主机内核处理该退出事件所花费的总时间占总时间的百分比。识别最耗时的退出事件,它是主要的性能瓶颈所在。
Avg time平均每次处理该退出事件所花费的时间。评估单个退出事件的平均延迟。

分析重点:

在分析报告时,应特别关注 Time% 最高的退出原因。高百分比意味着 KVM 花费了大量时间在处理这类特定的 VM-Exit,这通常是需要优化的地方。

perf kvm stat 是 Linux perf 工具集中的一个子命令,用于收集和报告 KVM 虚拟机的 VCPU 退出(VM-Exit)事件统计信息,帮助诊断虚拟化性能瓶颈。

🚨 运行要求与权限

由于 perf kvm stat 需要访问内核的跟踪点(Tracepoints),因此**必须使用 sudo(root 权限)**运行所有 recordreport 命令,否则会导致权限不足或数据文件为空。

1. 录制性能数据(Record)

在开始录制之前,请确保你的 KVM 虚拟机(Guest OS)正在运行,并且正在执行你想要分析的工作负载。

核心原则:限制录制时间,以避免生成过于庞大的数据文件,导致分析时间过长。

Bash

# 启动 KVM 虚拟机后,在宿主机终端执行此命令。
# 此示例将录制 KVM 事件 10 秒。
sudo perf kvm stat record sleep 10

# 提示:在 record 运行的 10 秒内,确保在虚拟机内进行操作,
# 以便 perf 捕获到活跃的 KVM 退出事件。

perf record 将自动停止并在当前目录下生成包含性能数据的记录文件(通常是 perf.data.guestperf.data)。

2. 生成性能报告(Report)

数据收集完成后,使用 report 子命令来解析和展示收集到的数据。此步骤也需要 sudo 权限。

Bash

# 在 record 命令停止后,在同一目录下执行此命令。
sudo perf kvm stat report

3. 分析报告界面

执行 report 命令后,你将进入一个交互式终端界面,其中会展示 KVM VCPU 的退出统计分析。

报告的关键分析项包括:

列名含义用途
VM-EXITVCPU 退出到宿主机内核的原因(如 EPT 违规、IO 指令、HLT 指令等)。定位虚拟机与宿主机交互最频繁的操作。
Samples发生的总次数。衡量每种退出事件的频率。
Samples%该退出事件占总退出事件的百分比。快速识别主要的退出类型。
Time%宿主机内核处理该退出事件所花费的总时间占总时间的百分比。识别最耗时的退出事件,它是主要的性能瓶颈所在。
Avg time平均每次处理该退出事件所花费的时间。评估单个退出事件的平均延迟。

分析重点:

在分析报告时,应特别关注 Time% 最高的退出原因。高百分比意味着 KVM 花费了大量时间在处理这类特定的 VM-Exit,这通常是需要优化的地方。

Read more

steam blue archive

年龄验证 使用 mmddyyyy 八位而不是yyyymmdd 八位 Maintenance in progress, closing app 梯子 开 tui 覆盖网络路由,或者使用加速器 登录已有账号 ▎必讀!Steam 用戶端帳號連結 & 解除指南🎈 《蔚藍檔案》Steam 用戶端可以至 Steam 商店頁面 [立即前往] 下載。 目錄 1. Steam 帳號 – NEXON 帳號連結方法 2. 解除以及變更連結至 Steam 的 NEXON 帳號(使用其他 NEXON 帳號連結 Steam) 🕹 本指南介紹的 Steam 用戶端 – NEXON 帳號連結操作僅可透過 Steam

By bakamake