问答 查看内容
返回列表

task_status没有按照35天清理是为什么?

94 1
发表于 4 天前 | 查看全部 阅读模式
task_status没有按照35天清理是为什么?通过检查服务器资源情况发现task_status数据占用很大
截图202604281832307543.png


评论1

观小豪楼主Lv.1 发表于 4 天前 | 查看全部
关于这个问题

1)task_status表默认数据保留是35天,如果有专门调整过“guandata-server-controller.yaml的args里 “-DguandataCleaner.taskStatusExpireDays”参数的话,会修改保留天数
2)如果上面参数没有修改过的话,默认按照保留35天的数据去查看task_status表发现还有35天之前的数据,关于这个情况的话,是由于查询到的数据量太多,清理时申请锁超出限制。The total number of locks exceeds the lock table size
2.1)可以联系运维先手动清理一下数据表中的数据,然后下一天再观察一下任务的执行情况。可以考虑优化删除时的查询条件,分段进行数据删除(比如一次搜索1000条,分多次清除),防止一次搜索的数据量太多导致上述问题。
2.2)执行sql参考,分段进行清理:

  1. <div>DELETE FROM task_status WHERE submit_time  < DATE_SUB(NOW(), INTERVAL 35 DAY);
  2. DELETE FROM task_status WHERE submit_time  < DATE_SUB(NOW(), INTERVAL 30 DAY);
  3. DELETE FROM task_status WHERE submit_time  < DATE_SUB(NOW(), INTERVAL 25 DAY);
  4. DELETE FROM task_status WHERE submit_time  < DATE_SUB(NOW(), INTERVAL 20 DAY);
  5. DELETE FROM task_status WHERE submit_time  < DATE_SUB(NOW(), INTERVAL 15 DAY);
  6. DELETE FROM task_status WHERE submit_time  < DATE_SUB(NOW(), INTERVAL 10 DAY);</div>
复制代码
2.3)而关于清理 delete 之后是不会释放掉占用的硬盘的,重启也不会释放降低的硬盘。关于这个情况,清理后需要导出后重建库,重新导入数据才会降低磁盘占用。
截图202604281837331596.png
截图202604281837438963.png
截图202604281837516934.png
3)后续我们会优化task_status 表的清理策略(GALAXY-36705)

参考工单:TS-29346,TS-28892,TS-14881

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表