參數架構設定考驗功力 Docker效能調校有眉角

Docker容器技術素以輕量級且容易部署等特色著稱,也因此得到眾多開發管理人員的青睞,但是若未經過仔細的效能調校,實際運作時效能可能會不如預期,對此本文將透過多項測試來加以驗證,實際導入Docker容器技術後,還必須進一步地調整校正,才能發揮這項技術的真正優勢。

調整Docker容器虛擬網路類型後,再次進行效能測試,會發現先前採用Bridge虛擬網路類型時,最多僅能同時支援35,969個使用者,將Docker容器更改為Host虛擬網路類型後,最高同時支援使用者數量提升至39,109,如圖11所示。


▲ 圖11 Docker容器採用不同虛擬網路類型對於整體效能表現的影響。(圖片來源:VMware White Paper - Performance of Enterprise Web Applications in Docker Containers on VMware vSphere 6.5)

Docker容器最佳化 – 裸機

事實上,在先前的效能測試結果中,許多人應該會感到困惑的部分在於,就一般認知來說,採用裸機的方式運作Docker容器和工作負載的效能測試應該最佳才對,但在效能測試結果中卻反而是表現最差的運作環境,如圖12所示。


▲ 圖12 裸機運作環境在未經過效能調校之前,Docker容器無法充分利用運算資源。(圖片來源:VMware White Paper - Performance of Enterprise Web Applications in Docker Containers on VMware vSphere 6.5)

主要原因在於,未經過效能調校的Docker容器僅會運作在「單顆」CPU處理器上,所以整體運作效能會受到限制,然而運作在VMware vSphere 6.5虛擬化平台上的Docker容器,因為受惠於vSphere 6.5的最佳化排程演算法,而能充分使用實體伺服器的「多顆」CPU處理器運算效能。

值得注意的是,與剛才在VMware vSphere 6.5虛擬化平台上運作的Docker容器不同,雖然在裸機運作環境中的Docker容器採用預設的Bridge虛擬網路類型,但因為所有的Docker容器都運作在「同一台」裸機伺服器中,所以並沒有受到Bridge虛擬網路類型的影響,至於儲存資源,也因為直接採用硬體儲存設備而未受到任何影響。

所以,在裸機運作環境中Docker容器整體的效能表現,主要受到CPU處理器運作資源是否能夠妥善利用所影響。

首先,可以針對每個Docker容器在運作時,配置「CPU親和性」(CPU Affinity)並且搭配使用NUMA Node的「記憶體親和性」(Memory Affinity)機制,此舉可以讓裸機運作環境中Docker容器的效能表現,由先前最多僅能同時支援30,625位使用者,提升至最高同時支援35,516個使用者。

舉例來說,在透過Docker容器技術啟動PostgreSQL時,執行下列指令:



倘若在配置CPU親和性機制後,再搭配Docker容器配置相同數量的邏輯CPU處理器,達到CPU執行緒數量相同的最佳化配置時,可以讓裸機運作環境中Docker容器的效能表現,再提升至最高同時支援36,952個使用者,如圖13所示。舉例來說,在透過Docker容器技術啟動PostgreSQL時,執行下列指令:




▲ 圖13 在裸機運作環境中,經過效能調校後,Docker容器整體效能提升許多。(圖片來源:VMware White Paper - Performance of Enterprise Web Applications in Docker Containers on VMware vSphere 6.5)

效能測試(Docker容器最佳化)

從上述三種主流應用情境運作Weathervane開放原始碼效能測試工具的結果可知,在VMware vSphere 6.5虛擬化平台中,如果採用VM虛擬主機直接運作Weathervane開放原始碼效能測試工具,或者採用VM虛擬主機加上Docker容器環境,再運作Weathervane開放原始碼效能測試工具後所測試出來的效能結果,兩者幾乎相同。

此外,還可以看到在VMware vSphere 6.5虛擬化平台中,不管直接採用VM虛擬主機或是VM虛擬主機加上Docker容器環境,相較於裸機運作Docker容器的效能表現,都要提升約5%的效能數據,主要便是受益於vSphere 6.5內建的工作負載調度演算法所帶來的好處,如圖14所示。


▲ 圖14 三種主流應用情境運作Weathervane開放原始碼效能測試工具的結果。(圖片來源:VMware White Paper - Performance of Enterprise Web Applications in Docker Containers on VMware vSphere 6.5)

結語

透過本文的說明及實作,相信大家已經了解Docker容器技術雖然以輕量級且容易建構和部署等特色迅速擄獲廣大開發人員和管理人員的目光,然而透過實際工作負載的效能測試後卻發現,倘若未經過正確的效能調校作業,那麼實際表現出來的運作效能並不理想,值得所有管理人員在導入Docker容器技術時深思。

<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!