当前位置:首页 > 编程笔记 > 正文
已解决

Tungsten Fabric数据量过大问题处理初探

来自网友在路上 145845提问 提问时间:2023-09-27 23:56:03阅读次数: 45

最佳答案 问答题库458位专家为你答疑解惑

开源SDN系统Tungsten Fabric面临数据产生过多问题。

经排查,产生数据多出自analytics组件的Cassandra数据库()。很多分析数据会存储至Cassandra库,并持久化处理。

没有特殊调整的话,目录在

/var/lib/docker/volumes/analytics_database_analytics_cassandra/_data/ContrailAnalyticsCql

两个目录文件很大

 其中messagetable增长很慢,但是stattablev4目录增长很快,主要是里面的.db文件增长超快,每天上G的量小意思。

数据增长过快会导致分区硬盘写满,一旦写满,会导致rabbitmq阻塞,进而导致整个TF服务宕机。

处理方法一、清理Cassandra持久化的db文件

# coding=utf-8
import subprocess
import datetimedef execute(cmd, shell=False, cwd=None):popen_obj = subprocess.Popen(cmd, shell=shell, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)popen_obj.wait()ret, err = popen_obj.communicate()ret = ret.decode("utf-8").strip()err = err.decode("utf-8").strip()return ret, errif __name__ == '__main__':now = datetime.datetime.now()cur_month = str(now.month) + "月"cur_day = str(now.day)ret, err = execute(['ls', '-lrtS'])for i in ret.split("\n"):temp = i.split()if len(temp) != 9:continuesize = temp[4]month = temp[5]day = temp[6]name = temp[8]if int(size) > 10*1024*1024:if month != cur_month and day != cur_day:print(str(int(int(size) / 1024 / 1024)) + "MB-" + month + "-" + day + "-" + name+"(moved)")print (execute(["mv", name, "/home/analytics_database_analytics_cassandra-BAKup/230504"]))else:print(str(int(int(size) / 1024 / 1024)) + "MB-" + month + "-" + day + "-" + name)

方法二、直接进analytics的Cassandra删原有数据

因为删除的是分析数据,不涉及系统配置等,不影响TF正常工作。

目前处理办法这两种,欢迎批评指正1 

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Tungsten Fabric数据量过大问题处理初探":http://eshow365.cn/6-14914-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!