注意

本文档适用于 Ceph 开发版本。

CephFS Top Utility

CephFS 提供top(1)类似实用程序,用于实时显示各种 Ceph 文件系统指标。cephfs-top是一个基于 curses 的 Python 脚本,它利用 Ceph 管理器中的插件来获取(并显示)指标。stats plugin in Ceph Manager to fetch (and display) metrics.

管理器插件

Ceph 文件系统客户端定期将各种指标转发到 Ceph 元数据服务器(MDS),MDS 再通过 MDS 排名零将指标转发给 Ceph 管理器。每个活跃的 MDS 将其各自的指标集转发给 MDS 排名零。指标被聚合并转发给 Ceph 管理器。

指标分为两类 - 全局和每个 MDS。全局指标表示整个文件系统的指标集(例如,客户端读取延迟),而每个 MDS 指标是针对特定 MDS 排名的(例如,MDS 处理的子树数量)。

Note

目前,仅跟踪全局指标。

stats插件默认禁用,应通过以下方式启用:

$ ceph mgr module enable stats

启用后,可以通过以下方式获取 Ceph 文件系统指标:

$ ceph fs perf stats

输出格式为 JSON,包含以下字段:

  • version: 统计输出的版本

  • global_counters: 全局性能指标列表

  • counters: 每个 MDS 性能指标列表

  • client_metadata: Ceph 文件系统客户端元数据

  • global_metrics: 全局性能计数器

  • metrics: 每个 MDS 性能计数器(目前为空)和延迟排名

Note

delayed_ranks是报告过时指标的活跃 MDS 排名集。这种情况可能发生在 MDS 排名零与其他活跃 MDS 之间的(临时)网络问题中。

可以针对特定客户端和/或一组活跃 MDS 获取指标。要获取特定客户端(例如,客户端 ID:1234)的指标:

$ ceph fs perf stats --client_id=1234

要仅获取活跃 MDS 子集的指标(例如,MDS 排名 1 和 2):

$ ceph fs perf stats --mds_rank=1,2

cephfs-top

cephfs-top实用程序依赖于stats插件来获取性能指标并在top(1)类似格式中显示。cephfs-top作为cephfs-top软件包的一部分提供。

默认情况下,cephfs-top使用client.fstop用户连接到 Ceph 集群:

$ ceph auth get-or-create client.fstop mon 'allow r' mds 'allow r' osd 'allow r' mgr 'allow r'
$ cephfs-top

字段描述

  1. chitCap hit

    文件能力命中占总能力的百分比

  2. dleaseDentry lease

    dentry 保留请求中 dentry 保留的百分比

  3. ofiles打开的文件

    打开文件的文件数量

  4. oicapsPinned caps

    保留的 caps 数量

  5. oinodes打开的 inodes

    打开 inode 的数量

  6. rtio读取 IO 的总大小

    由所有进程生成的输入/输出操作中读取的字节数

  7. wtio写入 IO 的总大小

    由所有进程生成的输入/输出操作中写入的字节数

  8. raio读取 IO 的平均大小

    所有进程在总 IO 中生成的输入/输出操作的字节数的平均值

  9. waio写入 IO 的平均大小

    所有进程在总 IO 中生成的输入/输出操作的字节数的平均值

  10. rsp读取速度

    自上次刷新客户端以来的读取 IO 速度

  11. wsp写入速度

    自上次刷新客户端以来的写入 IO 速度

  12. rlatavg平均读取延迟

    读取延迟的平均值

  13. rlatsd读取延迟的标准偏差(方差)

    读取延迟指标与其平均值的偏差

  14. wlatavg平均写入延迟

    写入延迟的平均值

  15. wlatsd写入延迟的标准偏差(方差)

    写入延迟指标与其平均值的偏差

  16. mlatavg平均元数据延迟

    元数据延迟的平均值

  17. mlatsd元数据延迟的标准偏差(方差)

    元数据延迟指标与其平均值的偏差

命令行选项

要使用非默认用户(除client.fstop外),请使用:

$ cephfs-top --id <name>

默认情况下,cephfs-top连接到集群名称ceph。要使用非默认集群名称:

$ cephfs-top --cluster <cluster>

cephfs-top默认情况下,每秒刷新统计信息。要选择不同的刷新间隔,请使用:

$ cephfs-top -d <seconds>

刷新间隔应为正整数。

要将指标转储到 stdout 而不创建 curses 显示,请使用:

$ cephfs-top --dump

要将给定文件系统的指标转储到 stdout 而不创建 curses 显示,请使用:

$ cephfs-top --dumpfs <fs_name>

交互式命令

  1. m文件系统选择

    显示用于选择的文件系统菜单。

  2. s排序字段选择

    指定排序字段。‘cap_hit’ 是默认值。

  3. l客户端限制

    设置要显示的客户端数量限制。

  4. r重置

    将排序字段和限制值重置为默认值。

  5. q退出

    如果您处于主屏幕(所有文件系统信息),则退出实用程序,否则按 Esc 返回主屏幕。

指标显示可以使用箭头键、PgUp/PgDn、Home/End 和鼠标进行滚动。

运行cephfs-top的示例屏幕截图,具有 2 个文件系统:

../../_images/cephfs-top.png

Note

cephfs-top 的最低兼容 Python 版本是 3.6.0。cephfs-top 支持 RHEL 8、Ubuntu 18.04、CentOS 8 及更高版本的发行版。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.