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

为何CnosDB中DISK_FREE参数显示不准确?

CnosDB磁盘可用空间统计与系统实际值不符问题分析

问题现象

执行CnosDB命令show datanodes时,数据节点的DISK_FREE字段显示为83.32 GB:

❯ show datanodes;
+---------+------------------------+-----------+---------+-----------+---------------------+
| NODE_ID | HOST                   | ATTRIBUTE | STATUS  | DISK_FREE | LAST_UPDATED_TIME   |
+---------+------------------------+-----------+---------+-----------+---------------------+
| 4       | query_tskv1.cnosdb.com | HOT       | HEALTHY | 83.32 GB  | 2023-07-06 03:12:03 |
| 5       | query_tskv2.cnosdb.com | COLD      | HEALTHY | 83.32 GB  | 2023-07-06 03:12:03 |
+---------+------------------------+-----------+---------+-----------+---------------------+
Query took 0.004 seconds.

但通过系统命令df -h查看根分区可用空间仅为78G:

Filesystem               Size  Used Avail Use% Mounted on
overlay                  114G   31G   78G  29% /

环境信息

  • CnosDB版本:cnosdb 2.3.1, revision = edf68a3430992ea27e79c7477c625c7f0ed08da7
  • Docker镜像:cnosdb/cnosdb-enterprise:2.3

可能原因及解决思路

1. 系统磁盘预留空间导致的差异

Linux系统默认会为root用户预留约5%的磁盘空间(用于系统应急操作),df -h显示的Avail是普通用户可使用的空间,而CnosDB的DISK_FREE可能统计的是磁盘总可用空间(包含root预留部分)。按你的磁盘总大小114G计算,5%预留空间约为5.7G,83.32G减去该预留值后正好接近78G,符合此逻辑。

如果需要验证,可通过tune2fs -l /dev/xxx | grep Reserved查看具体预留空间大小,其中/dev/xxx是对应磁盘设备名。

2. 数据存储路径与当前查看分区不一致

检查CnosDB数据节点的实际存储路径是否为df -h查看的根分区。可通过查看CnosDB配置文件中的data_dir参数确认数据目录,再执行df -h <data_dir路径>查看该分区的实际可用空间。如果数据目录挂载在其他未查看的分区,就会出现两者数值不符。

3. 指标缓存或同步延迟

CnosDB的磁盘空间指标可能存在缓存机制,不会实时同步系统磁盘状态。可尝试重启CnosDB数据节点后,再次执行show datanodes命令,观察数值是否更新为系统实际可用空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:32:56