5.2. 识别性能瓶颈


识别 VDO 性能中的瓶颈对于优化系统效率至关重要。您可以采取的一个主要步骤是确定瓶颈是否存在于 CPU、内存或后备存储的速度中。在找出最慢的组件后,您可以开发策略来增强性能。

为确保低性能的根本原因不是硬件问题,请在存储堆栈中运行带有和不带有 VDO 的测试。

VDO 中的 journalQ 线程是一个自然瓶颈,特别是在 VDO 卷处理写操作时。请注意,另一个线程类型有比 journalQ 线程更高的使用率,您可以通过添加更多此类型的线程来修复这个问题。

5.2.1. 使用 top 分析 VDO 性能

您可以使用 top 工具检查 VDO 线程的性能。

注意

top 等工具无法区分生产 CPU 周期和因缓存或内存延迟而停滞的周期。这些工具将缓存争用和内存访问解释为实际工作。在节点间移动线程可能会减少 CPU 使用率,同时增加每秒的操作。

流程

  1. 显示单个线程:

    $ top -H
    Copy to Clipboard Toggle word wrap
  2. f 键显示字段管理器。
  3. 使用 (↓) 键导航到 P = Last Used Cpu (SMP) 字段。
  4. 按空格选择 P = Last Used Cpu (SMP) 字段。
  5. q 键关闭字段管理器。top 工具现在显示单个核的 CPU 负载,并指示每个进程或线程最近使用了哪个 CPU。您可以通过按 1 切换到每个 CPU 统计信息。

5.2.2. top 结果的解释

在分析 VDO 线程的性能时,请使用下表来解释 top 工具的结果。

Expand
表 5.1. 解释 top 结果
描述建议

线程或 CPU 使用率超过 70%

线程或 CPU 过载。高使用率可能导致 VDO 线程调度到没有实际工作的 CPU 上。这可能是由于大量的硬件中断、内存冲突或资源竞争而造成的。

增加运行此核的线程类型的数量。

%id%wa

核正在积极处理任务。

不需要任何操作。

%hi

核正在执行标准的处理工作。

添加更多的核来提高性能。避免 NUMA 冲突。

  • 高(超过几个百分比) %hi
  • 只有一个线程被分配给核
  • %id 为零
  • %wa 值为零

核被过度使用。

将内核线程和设备中断处理重新分配到不同的核。

  • VDO:bioQ 线程经常处于 D 状态。

VDO 始终使存储系统忙于 I/O 请求。如果存储系统可以处理多个请求,或者请求处理高效,则这非常有用。

如果 CPU 使用率非常低,则减少 I/O 提交线程的数量。

VDO:bioQ 线程经常处于 S 状态。

VDO 有比其需要的更多的 vdo:bioQ 线程。

减少 vdo:bioQ 线程的数量。

每个 I/O 请求的高 CPU 使用率。

每个 I/O 请求的 CPU 使用率随着线程的增加而增加。

检查 CPU、内存或锁争用。

5.2.3. 使用 perf 分析 VDO 性能

您可以使用 perf 工具检查 VDO 的 CPU 性能。

先决条件

  • perf 软件包已安装。

流程

  1. 显示性能配置文件:

    # perf top
    Copy to Clipboard Toggle word wrap
  2. 通过解释 perf 结果来分析 CPU 性能:

    Expand
    表 5.2. 解释 perf 结果
    描述建议

    vdo:bioQ 线程花费大量的周期来获取自旋锁

    在 VDO 下的设备驱动程序中可能会发生太多竞争

    减少 vdo:bioQ 线程的数量

    高 CPU 使用率

    NUMA 节点之间的争用。

    如果处理器支持,请检查 stalled-cycles-backendcache-missesnode-load-misses 等计数器。高丢失率可能导致停滞,类似于其他工具中的高 CPU 使用率,表示可能的争用。

    为 VDO 内核线程实现 CPU 亲和性或为中断处理程序实现 IRQ 亲和性,来将处理工作限制到单个节点。

5.2.4. 使用 sar 分析 VDO 性能

您可以使用 sar 工具创建有关 VDO 性能的定期报告。

注意

并非所有块设备驱动程序都可以提供 sar 工具所需的数据。例如:MD RAID 等设备不报告 %util 值。

先决条件

  • 安装 sysstat 工具:

    # dnf install sysstat
    Copy to Clipboard Toggle word wrap

流程

  1. 以 1 秒的间隔显示磁盘 I/O 统计信息:

    $ sar -d 1
    Copy to Clipboard Toggle word wrap
  2. 通过解释 sar 结果分析 VDO 性能:

    Expand
    表 5.3. 解释 sar 结果
    描述建议
    • 底层存储设备的 %util 值远低于 100% 。
    • VDO 处于 100% 繁忙状态。
    • bioQ 线程在使用大量 CPU 时间。

    对于快速设备,VDO 有太少的 bioQ 线程。

    添加更多的 bioQ 线程。

    请注意,当由于自旋锁争用而添加 bioQ 线程时,某些存储驱动程序可能会减慢。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat