etcd favicon etcd
etcd
A distributed, reliable key-value store for the most critical data of a distributed system Learn more Quickstart What is etcd? etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. It gracefully handles leader elections during network partitions and can tolerate machine failure, even in the leader node. Learn more Features Simple interface Read and write values using standard HTTP tools, such as curl
etcd

分散型のキーバリューストア Go言語製 複数台で実行してクラスターを構築することで負荷分散を行う

etcdctl で操作できる。

docker composeでクラスターを構築する

etcdのバックアップを取る

リソース使用量チューニング

snapshot取得のしきい値を下げる

https://etcd.io/docs/v3.5/op-guide/maintenance/#raft-log-retention https://etcd.io/docs/v3.5/tuning/#snapshots etcdはログファイルにすべてのキーの変更履歴を書きこむ。 ログが巨大にならないようにするため、定期的にsnapshotを取るといい。 デフォルトの —snapshot-count は100,000なので、10万件のログをメモリに保持する。

履歴データの圧縮

データの変更履歴を保持しており、更新が多いユースケースだと履歴がメモリを圧迫する。 compactionすることで、圧縮することができる。

https://juicefs.com/docs/community/etcd_best_practices/ https://etcd.io/docs/v3.5/op-guide/maintenance/#auto-compaction

ETCD_AUTO_COMPACTION_MODE=revision
ETCD_AUTO_COMPACTION_RETENTION=1000

これだと、5分おきに最新から1000リビジョン以前の履歴をcompactionする。