【 使用环境 】生产环境
【 OB 】
【 使用版本 】V4.3.5
【问题描述】使用obd部署的ob,默认的日志存储目录/data/log1下日志文件过大,如何正确释放资源?
【复现路径】在dashboard中缩小了日志占用磁盘的参数,为什么没有自动释放资源?
ocp不能缩小吗
为了释放过大的 OB 日志文件所占用的资源,可以通过以下步骤进行操作:
-
检查并修改日志相关配置项
- 确认
log_disk_size
配置项的值是否合理。例如,如果设置为 100G,OBServer 节点启动时会预分配 100G 的日志文件作为日志文件池。 - 修改
log_disk_size
配置项的值以减少预分配的日志文件空间。obd cluster edit-config <deploy name> --set log_disk_size=<新的值>
- 确认
-
开启日志轮转功能
- 开启日志轮转功能并设置最大文件数量。
alter system set enable_syslog_recycle = true; alter system set max_syslog_file_count = 1000;
- 开启日志轮转功能并设置最大文件数量。
-
手动清理日志文件
- 如果上述方法未能自动释放资源,可以手动清理日志文件。
-
注意:不要直接删除日志文件,而是通过 OB 的管理命令来清理。
obd cluster clean-log <deploy name>
-
检查磁盘使用情况
- 使用以下命令检查磁盘使用情况,确保磁盘空间已释放。
df --output=size,avail,target
- 使用以下命令检查磁盘使用情况,确保磁盘空间已释放。
-
重启 OBServer 节点
- 重启 OBServer 节点以确保配置项生效。
obd cluster restart <deploy name>
- 重启 OBServer 节点以确保配置项生效。
如果以上步骤仍无法解决问题,请提供更多日志信息,以便进一步排查。
检索到的文档如下:
学习
1、租户的 clog 盘的空间,不会全部使用完,通过以下参数来控制:
- log_disk_utilization_threshold,默认是80,表示在超过设定阈值后,会将可以回收的日志文件回收掉。
- log_disk_utilization_limit_threshold,默认是95,表示 clog 大小达到该阈值后,会禁止写入和日志同步。
2、clog 文件是否支持手动清理?一定不要在 OceanBase 的环境里手动去维护 clog 文件。如果想给 clog 盘瘦身,可以临时调小 log_disk_utilization_threshold,等磁盘空间降下来后,调整log_disk_size大小,再将 log_disk_utilization_threshold 调回默认值 80 。log_disk_size设置过小,会有风险的, 会导致clog没有空间可以用。
3、1. log_disk_size取值计算方式:log_disk_size>=memory_limit * 3。 2. 预占用会提前申请磁盘空间,部署完成查看磁盘使用很大,属于正常现象。3. log_disk_size优先级大log_disk_percentage。
按照回复的方法尝试了,日志目录下的空间还是没有释放。我发现log_pool目录下的文件占用磁盘空间特别多
按照回复的方法尝试了,日志目录下的空间还是没有释放。我发现log_pool目录下的文件占用磁盘空间特别多。
根据您提供的信息,即使您已经尝试了之前的解决方案,日志目录下的空间仍未释放,这可能是因为log_pool目录下的文件占用磁盘空间特别多。这种情况通常表示这些文件尚未达到可以被回收的条件,即文件中的所有分区日志对应的数据尚未完全转储到SSTable中。
您可以检查是否有转储卡住的情况。另外,您也可以采取以下应急措施来释放空间:
- 继续监控转储过程,确保数据能够尽快被转储;
- 如果情况紧急,可以考虑手动清理部分日志文件,但需谨慎操作,以免影响数据一致性。
若以上方法仍然无法解决问题,建议联系OceanBase技术支持团队寻求进一步的帮助。
检索到的文档如下:
印象中已部署的集群只能扩大clog,不能缩小clog