@论坛小助手
遇到一个问题:
/data是独占的,datafile_disk_percentage配置的是0,但是现在/data占用了95%,目前看都是sttable/block_file占用的,我看官网上说:
独占时,数据文件占用其所在磁盘总空间的百分比为 90%。
但是我目前观察,主节点占用95%,两个cluster节点占用82%,难道不应该都是90%吗?不能理解为什么是这样呢,以下是各节点的磁盘占用情况截图:
主节点:
副节点1:
副节点2:
@论坛小助手
遇到一个问题:
/data是独占的,datafile_disk_percentage配置的是0,但是现在/data占用了95%,目前看都是sttable/block_file占用的,我看官网上说:
独占时,数据文件占用其所在磁盘总空间的百分比为 90%。
但是我目前观察,主节点占用95%,两个cluster节点占用82%,难道不应该都是90%吗?不能理解为什么是这样呢,以下是各节点的磁盘占用情况截图:
主节点:
副节点1:
副节点2:
麻烦提供一份你的yaml文件 cd ~/.obd/clster/xxx/
这里有设置data磁盘参数
也就是这里改小就可以了是吧
现在调小是不是已经无法让磁盘空间占用释放出来了啊?还有datafile_next的配置能给下最佳实践建议吗?
根据您的描述和提供的信息,我们可以从以下几个方面来分析和解答您的问题。
datafile_disk_percentage
和磁盘占用比例
您提到 /data
是独占的,并且配置了 datafile_disk_percentage=0
。根据文档中的说明(参考 [datafile_disk_percentage → 使用说明](datafile_disk_percentage → 使用说明)),当 datafile_disk_percentage
配置为 0 时:
因此,在您的场景中,理论上主节点和副节点的数据文件应该占用磁盘的 90%。然而,您观察到主节点占用了 95%,而两个副节点分别占用了 82%。这种差异可能由以下原因导致:
datafile_maxsize
和 datafile_next
,数据文件可能会逐步扩展,导致占用比例增加。datafile_disk_percentage
是否能释放磁盘空间
调小 datafile_disk_percentage
并不能直接释放已经占用的磁盘空间。这是因为:
如果您希望释放磁盘空间,可以考虑以下方法:
PURGE RECYCLEBIN;
datafile_disk_percentage
,可以通过以下命令修改配置:ALTER SYSTEM SET datafile_disk_percentage = 新值;
然后重启集群以生效。datafile_next
的最佳实践建议
datafile_next
是用于控制数据文件每次扩展的大小。根据文档中的说明(参考 配置磁盘数据文件的动态扩容),以下是关于 datafile_next
的最佳实践建议:
datafile_next
设置为 10GB 或更大。datafile_next
的值;反之,如果磁盘空间充足且扩展频率较低,可以保持较小的值。假设磁盘总空间为 1TB,您可以尝试以下配置:
ALTER SYSTEM SET datafile_next = '10G';
datafile_next
设置过小,可能会导致频繁的扩展操作,影响性能。datafile_next
设置过大,可能会一次性占用过多磁盘空间,导致资源浪费。datafile_disk_percentage
:无法直接释放已占用的磁盘空间,需通过清理数据或迁移数据等方式解决。datafile_next
最佳实践:根据磁盘总空间和数据增长速度合理设置,推荐初始值为 10GB 或更大。如果您仍有疑问或需要进一步的帮助,请提供更多详细信息,我们将尽力为您解答!
检索到的文档如下:
集群为新建的吧?这边新建集群后 磁盘大小是按照datafile_size预分配的。并未一次性按照datafile_max分配完
节点占比大小不一致问题这边需要咨询一下
老师,请教一下,有什么办法能让oceanbase释放部分空闲的已分配空间吗?
磁盘参数当前不支持调小
老师,最后跟您确认一下,能否可以通过清理sstable中的转储数据来达到磁盘空间的释放吗?
不可以,ob是预保留磁盘大小的。
这边新建集群后 磁盘大小是按照datafile_size预分配的并未复现出你的场景,请问你做过什么操作么
主要做了两件事: