CephFS “Client Failing to Respond to Cache Pressure“ 告警分析

发布于:2025-06-28 ⋅ 阅读:(15) ⋅ 点赞:(0)

告警含义

  • 当出现 Client failing to respond to cache pressure 警告时,表明:

    • 元数据服务器 (MDS) 要求客户端释放缓存的元数据(如 inode Capabilities)
    • 客户端未能及时响应 释放请求

核心触发机制

MDS 通过以下周期性流程管理缓存

阶段 操作 触发条件
Cache Trim 周期 每隔 mds_cache_trim_interval 周期则执行缓存回收 自动触发
Recall Client State 检测每个 Client Session 是否需要释放 Capabilities 参考下文解释
告警触发 当客户端在 mds_recall_state_timeout 内未响应召回请求 超时阈值默认 60 秒

Recall Client State 触发条件

MDS 会检测 session 满足以下面条件就可以触发客户端 recall caps

  • 1 缓存达到|mds_cache_memory_limit
  • 2 Capabilities 数量超过 mds_max_caps_per_client
  • 3 客户端处于 inactive 状态

caps 回收逻辑

  • MDS每秒向客户端发送一次recall_caps请求
  • 每次请求量 = min(当前caps数 - mds_min_caps_per_client, mds_recall_max_caps)。

默认值:

  • mds_recall_max_caps = 30,000(单次最大回收量)

累积监控值

  • MDS维护会话级指标 recall_caps,记录 过去1分钟内累计发送的recall_caps总量。
  • 若客户端释放速率不足,该值会持续叠加。

当 session 中 client 的 recall_caps累积值超过该阈值时,
系统报告此告警 failing to respond to cache pressure

关键影响

风险等级 后果
MDS 内存溢出导致服务重启
严重 文件系统完全阻塞

客户端问题根源分析

操作负载压力

场景 典型案例 影响
高并发元数据操作 大规模目录遍历 (find / -type f) 客户端缓存压力指数级增长
小文件密集型读写 AI 训练数据集访问 Caps 回收速率低于产生速率

内核兼容性问题

风险版本 问题类型
内核版本 < 4.18 存在 CephFS 客户端缓存回收漏洞
未修补的定制内核 Caps 回收机制异常
sanpshot crash 之前使用 5.10.134-16.1.3 版本,遇到 MDS 故障后物理机 crash 升级至 5.10.134-18.0.1 解决问题

关键调优参数

参数 默认值 优化建议 作用
mds_recall_warning_threshold 262144 864000 触发告警的未释放 Capabilities 累积阈值 只是舒缓报警,无法解决问题

网站公告

今日签到

点亮在社区的每一天
去签到