背景:我们公司线上环境打算采用apisix来做k8s的路由,apisix集群因为用到etcd,整个配置搭建了一个月了,没有引流量,打算观察一段时间,今天发现了个问题,我们的zabbix监控报警一台etcd节点的cpu负载过高:
于是警惕的看下是什么导致的
负载不但高,内存也很高,我们还未投入使用呢,没有什么请求,观察日志也没什么线索,观察连接明显比其他两台节点的连接多,于是从这里入手,多的连接是apisix连接的,于是查看apisix配置etcd的配置文件
我做了个猜想,因为报警的这个etcd是在最上面,于是换了下位置,放在了下面,重启apisix后发现连接下来了,感觉像是get到了,但是仔细一想不对。cpu虽然降下来了,但是内存还很高啊;再去etcd的数据目录查看到db文件很大
每台etcd节点都是这样大,于是手动做了个快照,并查看了下内容(more test.db |strings | less)
发现这里面保存着从创建apisix集群到目前为止的所有数据,这样不对啊,于是搜文档:
“https://damonyi.cc/2020/09/21/Etcd%E7%9A%84db%E6%96%87%E4%BB%B6%E5%BE%88%E5%A4%A7/”
看了多个文档后,明白了,原来默认不会自动释放空间和清理数据,先手动清理一下数据吧:
这样,数据算是清理了
另外,etcd启动参数需要增加ETCD_AUTO_COMPACTION_RETENTION=1
这样就结束了,先记录下
标签:于是,db,节点,过大,etcd,连接,apisix From: https://www.cnblogs.com/caibao666/p/16871038.html