注意
本文档适用于 Ceph 的开发版本。
CephFS Top 实用程序
CephFS 提供了一个类似于 top(1) 的实用程序,用于实时显示各种 Ceph 文件系统指标。cephfs-top 是一个基于 curses 的 Python 脚本,它利用 Ceph Manager 中的 stats 插件来获取(并显示)指标。
管理器插件
Ceph 文件系统客户端会定期将各种指标转发给 Ceph 元数据服务器 (MDS),MDS 零号节点又将这些指标转发给 Ceph Manager。每个活动的 MDS 都会将其各自的指标集转发给 MDS 零号节点。指标会被聚合并转发给 Ceph Manager。
指标分为两类:全局指标和每个 MDS 指标。全局指标代表整个文件系统的指标集(例如,客户端读取延迟),而每个 MDS 指标则针对特定的 MDS 节点(例如,特定 MDS 处理的子树数量)。
注意
目前,仅跟踪全局指标。
stats 插件默认禁用,需要通过以下方式启用:
$ ceph mgr module enable stats
启用后,可以通过以下方式获取 Ceph 文件系统指标:
$ ceph fs perf stats
输出格式为 JSON,包含以下字段:
version: 统计信息输出的版本
global_counters: 全局性能指标列表
counters: 每个 MDS 性能指标列表
client_metadata: Ceph 文件系统客户端元数据
global_metrics: 全局性能计数器
metrics: 每个 MDS 性能计数器(目前为空)和延迟节点
注意
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
字段说明
- chitCap 命中率
文件功能命中占总功能数的百分比
- dlease目录项租约
已授予的目录项租约占总目录项租约请求的百分比
- ofiles打开的文件数
打开的文件数
- oicaps固定功能数
固定的功能数
- oinodes打开的索引节点数
打开的索引节点数
- rtio读取 IO 总大小
所有进程生成的输入/输出操作中读取的字节数
- wtio写入 IO 总大小
所有进程生成的输入/输出操作中写入的字节数
- raio读取 IO 平均大小
所有进程生成的输入/输出操作中读取的字节数占总 IO 的平均值
- waio写入 IO 平均大小
所有进程生成的输入/输出操作中写入的字节数占总 IO 的平均值
- rsp读取速度
相对于上次客户端刷新的持续时间,读取 IO 的速度
- wsp写入速度
相对于上次客户端刷新的持续时间,写入 IO 的速度
- rlatavg平均读取延迟
读取延迟的平均值
- rlatsd读取延迟的标准偏差(方差)
读取延迟指标相对于其平均值的离散程度
- wlatavg平均写入延迟
写入延迟的平均值
- wlatsd写入延迟的标准偏差(方差)
写入延迟指标相对于其平均值的离散程度
- mlatavg平均元数据延迟
元数据延迟的平均值
- mlatsd元数据延迟的标准偏差(方差)
元数据延迟指标相对于其平均值的离散程度
命令行选项
要使用非默认用户(非 client.fstop),请使用:
$ cephfs-top --id <name>
默认情况下,cephfs-top 连接到集群名称为 ceph 的集群。要使用非默认集群名称:
$ cephfs-top --cluster <cluster>
cephfs-top 默认每秒刷新一次统计信息。要选择不同的刷新间隔:
$ cephfs-top -d <seconds>
刷新间隔应为正整数。
要将指标转储到标准输出而不创建 curses 显示:
$ cephfs-top --dump
要将给定文件系统的指标转储到标准输出而不创建 curses 显示:
$ cephfs-top --dumpfs <fs_name>
交互式命令
- m文件系统选择
显示文件系统菜单供选择。
- s排序字段选择
指定排序字段。默认是 'cap_hit'。
- l客户端限制
设置要显示的客户端数量限制。
- r重置
将排序字段和限制值重置为默认值。
- q退出
如果您在主屏幕(所有文件系统信息),则退出实用程序;否则返回主屏幕。
可以使用箭头键、PgUp/PgDn、Home/End 和鼠标滚动指标显示。
运行 cephfs-top(有两个文件系统)的示例截图
注意
cephfs-top 兼容的最低 Python 版本是 3.6.0。cephfs-top 支持 RHEL 8、Ubuntu 18.04、CentOS 8 及更高版本。