You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus TSDB保留时间从1y调整为100d后未释放磁盘空间问题咨询

Prometheus TSDB保留时间修改后不释放磁盘空间问题解答

修改保留时间配置后Prometheus不会立刻自动清理过期数据释放磁盘,需要符合其内部的块清理逻辑才会执行删除操作,未生效通常有以下几种原因:

  • 数据块清理规则限制
    Prometheus TSDB采用块存储结构,默认每2小时生成一个新的实时写入块,运行超过15天的块会被合并为更大的持久化块。清理逻辑只会删除整个块的所有数据都超出保留时长的封闭块,不会单独清理块内的部分过期数据。你之前设置的1年保留周期会生成大量时间跨度远大于100天的大块,只有当整个大块的最新数据也超过100天阈值时,才会被整体删除释放空间。
  • 配置未正确生效
    首先确认你的配置修改已经被Prometheus加载:
    • 如果是通过启动参数--storage.tsdb.retention.time设置的保留时间,修改后必须重启Prometheus进程才会生效
    • 可以通过Prometheus内置的/status页面查看Storage Retention字段,确认当前生效的保留时间是否为100d
  • 保留规则优先级冲突
    如果你同时配置了磁盘容量保留参数--storage.tsdb.retention.size,Prometheus会采用「时间保留阈值/容量保留阈值」哪个先触发就执行哪个的规则,需要确认该参数没有设置的比100d对应存储容量更大,导致优先触发容量保留规则。

如果需要手动触发立即清理,可以执行以下操作:

  1. 启动Prometheus时添加--web.enable-admin-api参数开启管理API权限
  2. 调用清理接口执行过期数据清理:
curl -XPOST http://<你的Prometheus访问地址>:9090/api/v1/admin/tsdb/clean_tombstones

注:该接口只会清理已经标记为待删除的块,不会修改TSDB的块结构,不会影响正常写入

排查小提示:如果等待超过24小时仍然没有数据清理动作,可以查看Prometheus运行日志,确认是否存在块文件损坏、磁盘读写权限不足等报错,此类异常会导致清理流程中断。

内容的提问来源于stack exchange,提问作者howhornyareyou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:27:02