首页 > 其他 > 详细

ETCD部署到优化(未写完)

时间:2021-05-13 19:44:29      阅读:15      评论:0      收藏:0      [点我收藏+]

硬件选择

 

CPU

通常2到4核就可以平稳运行,如果上千个客户端请求成千上万就8到16核

内存

etcd的内存占用相对较小,但是其性能仍然取决于是否有足够的内存。etcd服务器将积极地缓存键值数据,并花费其其余大部分内存跟踪监视程序。通常8G如果观察者上千(就是watch API跟踪key变化)负载重就16到64GB

硬盘

缓慢的磁盘会增加etcd请求的延迟,并可能损害群集的稳定性。由于etcd的共识协议依赖于将元数据持久存储在日志中,因此大多数etcd集群成员必须将每个请求写入磁盘。另外,etcd还将以增量方式将其状态检查到磁盘,以便它可以截断该日志。如果这些写入花费的时间太长,则心跳可能会超时并触发选举

通常7200转机械就够用,高并发负载用ssd吧

网络

保障网络低延时有效提升稳定性,因为心跳因为延时有超时的可能。导致重选Leader。

通常1G足够,大型的就10G

 

etcd v3基于链接认证,不是像v2每次请求一认证

 

储存大小限制

 

默认存储大小限制是 2GB, 可以通过 --quota-backend-bytes 标记配置; 最大支持 8GB.

 

 

 

 

 

维护(也算后期优化)

 

etcd 的维护是指管理被 etcd 键空间消耗的存储资源。通过存储空间的配额来控制键空间大小;如果 etcd 成员运行空间不足,将触发集群级警告,这将使得系统进入有限操作的维护模式。为了避免没有空间来写入键空间, etcd 键空间历史必须被压缩。存储空间自身可能通过碎片整理 etcd 成员来回收。最后,etcd 成员状态的定期快照备份使得恢复任何非故意的逻辑数据丢失或者操作错误导致的损坏变成可能。

 

etcd 可以使用带有小时时间单位的 --auto-compaction 选项来设置为自动压缩键空间:

 

# 保持一个小时的历史
$ etcd --auto-compaction-retention=1

 

etcdctl 如下发起压缩工作:

 

# 压缩到修订版本3
$ etcdctl compact 3

 

在压缩修订版本之前的修订版本变得无法访问:

 

$ etcdctl get --rev=2 somekey
Error: rpc error: code = 11 desc = etcdserver: mvcc: required revision has been compacted

 

内部碎片是指可以被后端使用但是依然消耗存储空间的空间。反碎片化过程释放这个存储空间到文件系统。反碎片化在每个成员上发起。

 

碎片化的空间可以被 etcd 使用,但是对于主机文件系统不可用。

为了反碎片化 etcd 成员, 使用 etcdctl defrag 命令:

 

$ etcdctl defrag
Finished defragmenting etcd member[127.0.0.1:2379]

 

空间配额

在 etcd 中空间配额确保集群以可靠方式运作。没有空间配额, etcd 可能会收到低性能的困扰,如果键空间增长的过度的巨大,或者可能简单的超过存储空间,导致不可预测的集群行为。如果键空间的任何成员的后端数据库超过了空间配额, etcd 发起集群范围的警告,让集群进入维护模式,仅接收键的读取和删除。在键空间释放足够的空间之后,警告可以被解除,而集群将恢复正常运作。

 

默认,etcd 设置适合大多数应用的保守的空间配额,但是它可以在命令行中设置,单位为字节:

 

# 设置非常小的 16MB 配额
$ etcd --quota-backend-bytes=16777216

 

空间配额告警处理办法:删除多读的键空间将把集群带回配额限制 

 

技术分享图片
# 获取当前修订版本
$ etcdctl --endpoints=:2379 endpoint status
[{"Endpoint":"127.0.0.1:2379","Status":{"header":{"cluster_id":8925027824743593106,"member_id":13803658152347727308,"revision":1516,"raft_term":2},"version":"2.3.0+git","dbSize":17973248,"leader":13803658152347727308,"raftIndex":6359,"raftTerm":2}}]
# 压缩所有旧有修订版本
$ etdctl compact 1516
compacted revision 1516
# 反碎片化过度空间
$ etcdctl defrag
Finished defragmenting etcd member[127.0.0.1:2379]
# 解除警告
$ etcdctl alarm disarm
memberID:13803658152347727308 alarm:NOSPACE
# 测试put被再度容许
$ etdctl put newkey 123
OK
技术分享图片

 

快照备份

在正规基础上执行 etcd 集群快照可以作为 etc 键空间的持久备份。通过获取 etcd 成员的候选数据库的定期快照,etcd 集群可以被恢复到某个有已知良好状态的时间点。

通过 etcdctl 获取快照:

 

技术分享图片
$ etcdctl snapshot save backup.db
$ etcdctl --write-out=table snapshot status backup.db
+----------+----------+------------+------------+
| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| fe01cf57 | 10 | 7 | 2.1 MB |
+----------+----------+------------+------------+
技术分享图片

ETCD部署到优化(未写完)

原文:https://www.cnblogs.com/determined-K/p/14764704.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!