自適應配置分發優化效果
更新時間 2024-09-09 19:49:21
最近更新時間: 2024-09-09 19:49:21
分享文章
本章節介紹自適應配置分發的優化效果
背景信息
本文對比在相同規模的服務網格場景下開啟和關閉自適應配置分發時服務網格控制面和數據面的資源消耗,說明自適應配置分發優化的使用場景和效果。
對比方案概述
應用說明
在多個命名空間部署bookinfo應用,請求應用,觀察控制面和數據面資源消耗。bookinfo調用關系如下:

應用規模
在集群中創建22個命名空間,分別部署一個bookInfo demo,共88個Pod。每個productpage應用只需要訪問reviews和details。
?
場景與指標說明
| 場景? | 場景描述 | 指標? |
|---|---|---|
| 基線場景 | 未啟用自適應配置下發。 | 控制面: 1、CPU及內存開銷。 2、Pilot推送頻率和時延。 3、XDS的請求量。 數據面(sidecar): 1、CPU及內存開銷。 2、sidecar的服務資源信息。 |
| 啟用自適應配置下發場景1 | 啟用瞬間。 | 控制面: 1、CPU及內存開銷。 2、Pilot推送頻率和時延。 3、XDS的請求量。 數據面(sidecar): 1、CPU及內存開銷。 2、sidecar的服務資源信息。 |
| 啟用自適應配置下發場景2 | 1、已啟用自適應配置下發。 2、對每個命名空間下的服務持續發起網絡訪問請求。 |
控制面: 1、CPU及內存開銷。 2、Pilot推送頻率和時延。 3、XDS的請求量。 數據面(sidecar): 1、CPU及內存開銷。 2、sidecar的服務資源信息。 |
?
結果說明
基線場景
控制面
可以看到隨著服務的啟動,控制面內存消耗逐漸增加,由于服務啟動后控制面要執行全量配置推送,控制面CPU先上升,然后回落。

控制面xds推送ops、大小以及耗時。

?

?
數據面
選取任意一個pod觀察CPU和內存。
istio-proxy容器在啟動時要獲取全量配置,CPU較高,然后回落。
內存增長到一個值后保持穩定。

查看業務相關outbounds規則情況可以看到sidecar中包含了全量的服務信息。
?
自適應配置下發場景1——開啟瞬間
控制面
可以看到控制面CPU相比未開啟自適應配置分發的情況明顯降低。

xds推送ops、大小以及耗時明顯降低。



數據面
選取任意一個pod觀察,可以看到內存有明顯降低。

業務相關outbounds規則情況,只有業務訪問到的目標服務信息。

?
小結
可以明顯看到cpu和內存開銷峰值下降,xds下發的平均包大小和耗時也大幅下降。
控制面優化概況
| 場景 | CPU峰值 | 內存峰值 | proxy推送頻率峰值ops/s | 推送耗時P99 | 推送耗時P999 | XDS平均請求量峰值 |
|---|---|---|---|---|---|---|
| 基線 | 1.8 | 668M | 170 | 497ms | 2.6s | 1MB/s |
| 開啟瞬間 | 0.435?(-75.8%) | 362M?(-45.8%) | 38?(-77.6%) | 90ms?(-81.9%) | 90ms?(-96.5%) | 23KB/s?(-97.8%) |
?
數據面優化概況
| 場景 | sidecarCPU峰值 | sidecar內存峰值 | 是否推送不含依賴關系的服務相關資源 |
|---|---|---|---|
| 基線 | 0.08 | 92.6M | 是 |
| 開啟瞬間 | 0.0015(-98.0%) | 44M(-52.4%) | 否 |
?
自適應配置下發場景2——開啟后持續產生流量
控制面

xds推送大小以及耗時


數據面
選取任意一個pod觀察cpu,內存

業務相關outbounds規則情況

?
小結
可以看到開啟后產生的業務訪問場景下,控制面cpu和內存進一步降低,xds量幾乎為0。
控制面優化概況
| 場景 | CPU峰值 | 內存峰值 | proxy推送頻率峰值ops/s | 推送耗時P99 | 推送耗時P999 | XDS平均請求量峰值 |
|---|---|---|---|---|---|---|
| 基線 | 1.8 | 668M | 170 | 497ms | 2.6s | 1MB/s |
| 開啟瞬間 | 0.435?(-75.8%) | 362M?(-45.8%) | 38?(-77.6%) | 90ms?(-81.9%) | 90ms?(-96.5%) | 23KB/s?(-97.8%) |
| 開啟后 | 0.0157(-99.1%) | 315M(-52.8%) | 3.13?(-98.2%) | 99ms?(-80.1%) | 99.9ms?(-96.2%) | 0.6KB/s?(-99.9%) |
數據面優化概況
| 場景 | sidecarCPU峰值 | sidecar內存峰值 | 是否推送不含依賴關系的服務相關資源 |
|---|---|---|---|
| 基線 | 0.08 | 92.6M | 是 |
| 開啟瞬間 | 0.0015(-98.0%) | 44M(-52.4%) | 否 |
| 開啟后 | 0.0021(-97.4%) | 53M(-42.3%) | 否 |