3.12. etcd ピアの往復時間がパフォーマンスに与える影響
etcd ピアの復時間は、メンバー間で何かをどれだけ速く複製できるかを示すエンドツーエンドのテストメトリクスです。これは、etcd がすべての etcd メンバー間でクライアント要求の複製を完了するまでのレイテンシーを示します。etcd ピアの往復時間は、ネットワークの往復時間とは異なります。
OpenShift Container Platform コンソールのダッシュボードで、さまざまな etcd メトリクスを監視できます。コンソールで、Observe
etcd ダッシュボードの端のほうに、etcd ピアの往復時間をまとめたプロットがあります。
これらの etcd メトリクスは、Prometheus の OpenShift メトリクスシステムによって収集されます。CLI からこれらにアクセスするには、Red Hat ナレッジベースのソリューション How to query from the command line Prometheus statistics に従います。
# Get token to connect to Prometheus
SECRET=$(oc get secret -n openshift-user-workload-monitoring | grep prometheus-user-workload-token | head -n 1 | awk '{print $1 }')
export TOKEN=$(oc get secret $SECRET -n openshift-user-workload-monitoring -o json | jq -r '.data.token' | base64 -d)
export THANOS_QUERIER_HOST=$(oc get route thanos-querier -n openshift-monitoring -o json | jq -r '.spec.host')
クエリーは URL エンコードする必要があります。次の例は、etcd がメンバー間でクライアント要求の複製を完了するまでの往復時間 (秒単位) を報告するメトリクスを取得する方法を示しています。
# prometheus query
query="histogram_quantile(0.99, rate(etcd_network_peer_round_trip_time_seconds_bucket[5m]))"
# urlencoded query
encoded_query=$(printf "%s" $query |jq -sRr @uri)
# querying the OpenShift metrics service
curl -s -X GET -k -H "Authorization: Bearer $TOKEN" "https://$THANOS_QUERIER_HOST/api/v1/query?query=$encoded_query" | jq '.data.result[] | .metric.pod,.value[1]'
"etcd-m2"
"0.09318400000000004" # example ~93ms
"etcd-m0"
"0.050688" # example ~51ms
"etcd-m1"
"0.050688" # example ~51ms
以下のメトリクスも etcd のパフォーマンスを把握するために使用できます。
- etcd_disk_wal_fsync_duration_seconds_bucket
- etcd WAL fsync の継続時間を報告します。
- etcd_disk_backend_commit_duration_seconds_bucket
- etcd バックエンドのコミットレイテンシーの継続時間を報告します。
- etcd_server_leader_changes_seen_total
- リーダーの変更を報告します。