Linkerd和Istio基準測試 - linkerd

banq發表於2021-12-01

我們使用兩個專案的最新版本重新執行了基準測試。我們的結果表明,即使新增了策略,Linkerd 仍然比 Istio 快得多,同時只消耗系統資源的一小部分。在我們測試的最高負載水平下,Linkerd 引入的額外尾部延遲幾乎比 Istio 少一個數量級。

在這些實驗中,我們將相同的 Kinvolk 基準測試套件應用於兩個專案的最新穩定版本:Linkerd 2.11.1(預設安裝)和 Istio 1.12.0(“最小”配置)。我們使用基準線束使用的Lokomotive Kubernetes 發行版在 Kubernetes v1.21.4 叢集上執行基準線束,在Equinix Metal向 CNCF 專案提供的裸機硬體上執行。

 

測試了哪些服務網格功能?

雖然每個服務網格都提供了大量功能,但在這些實驗中實際上只有其中的一個子集在起作用:

  • 兩個網格都 啟用了雙向TLS,並且正在加密所有應用程式 pod 之間的流量和驗證身份。
  • 兩個網格都是報告指標,包括 L7 指標,儘管在本實驗中沒有使用這些指標。
  • 預設情況下,兩個網格都在 INFO 級別記錄了各種訊息。我們沒有配置日誌記錄。
  • 沒有明確啟用重試、超時、分散式跟蹤、多叢集通訊或其他功能。

 

總結

在這些旨在模擬現實場景中行為的基準測試中,我們再次看到最新版本的 Linkerd 顯著優於最新版本的 Istio,同時保持了顯著更小的資源成本。在評估的最高吞吐量下,我們看到 Linkerd 在資料平面上消耗了 1/6 的記憶體和 55% 的 CPU,同時提供了 1/3 的額外中值延遲和 1/8 的額外最大延遲 Istio。

值得注意的是,Linkerd 在 200 RPS 時的最壞情況延遲比 2,000 RPS 時更差。這可能是由於實驗過程中的網路干擾。將來,我們可能希望更改異常值檢測的標準;目前,為了透明起見,我們按原樣報告這些結果。

  

為什麼 Linkerd 更快更輕?

Linkerd 和 Istio 在效能和資源成本上的巨大差異主要歸結為一件事:Linkerd 的基於 Rust 的“微代理”,Linkerd2-proxy。這個微代理為 Linkerd 的整個資料平面提供動力,基準測試在很大程度上反映了它的效能和資源消耗。

Linkerd2-proxy 不僅速度快、輕且安全,它代表了整個 CNCF 領域中一些最前沿的技術。

相關文章