天天看點

阿裡雲容器服務網絡性能測試

我們正在将測試環境逐漸從mesos架構遷移到阿裡雲的容器服務,在此過程中測試了四種不同的服務之間互相通路的模式的網絡性能。本文闡述了該性能測試的方法,資料和結論。

服務容器之間的互動存在四種不同的通路方式:

docker提供的link方式,可以在一個容器中通路另一個容器。 測試host為app-link。

在編排服務時,為每一個服務指定一個hostname,在其他服務中可以使用hostname通路對應的服務。測試host為app。

容器服務基于haproxy實作的一套服務間http通路和負載均衡的機制。測試host為app.local。

傳統的負載均衡服務,有http和tcp兩種監聽模式。測試中http slb host為192.168.1.10,tcp slb host為192.168.1.40。

分别通過這四種網絡通路目标機器上的http服務接口/ok并測試延遲(latency)和吞吐量(throughput)。

httping:測試延遲

ab(apache benchmarking tool):測試吞吐量

ubuntu 下安裝:

link:

hostname

服務發現

http slb

tcp slb

測試了100次head請求,平均時延如下表:

通路方式

延時(ms)

docker link

0.5

0.7

0.9

1.2

1.3

link

同時10000個并發請求,有580個請求slb nginx傳回了504錯誤,以下為response。

并發請求10000次,每秒處理的請求數如下表:

吞吐量(rps)

11571.74

9476.49

2338.60

1585.41

5287.14

從資料上看,使用docker link機制通路服務,無論是延遲和吞吐量都是最好的,hostname方式其次

同是 http 模式的服務發現和http slb,性能最差

http slb的并發性能似乎并不理想,10000個請求有5.8%的請求傳回了504 gateway錯誤

雖然docker link和hostname網絡性能最佳,但不清楚其負載能力如何。測試中我們發現hostname方式是具有負載能力的,不過在官方幫助文檔中,hostname通路方式被放在『不具備負載均衡能力的通路方式』中,而且被描述為『能做到一定的負載均衡的作用』。可見阿裡雲并沒有強調其負載能力。如果在生産環境中使用,負載均衡能力也是相當重要的一個名額。

最後,這兩個問題還需要向阿裡雲進一步确認:

link和hostname模式的負載能力到底如何?

對于具備負載衡量能力、http模式,内網使用這三個要求,是否有推薦使用的網絡模式?

繼續閱讀