做者:榮濱,酷劃在線後端架構師,關注微服務治理,容器化技術,Service Mesh等技術領域git
Pepper Metrics是我與同事開發的一個開源工具(github.com/zrbcool/pep…),其經過收集jedis/mybatis/httpservlet/dubbo/motan的運行性能統計,並暴露成prometheus等主流時序數據庫兼容數據,經過grafana展現趨勢。其插件化的架構也很是方便使用者擴展並集成其餘開源組件。
請你們給個star,同時歡迎你們成爲開發者提交PR一塊兒完善項目。github
酷劃在線成立於2014年,是國內激勵廣告行業的領軍者。酷劃致力於打造一個用戶、廣告主、平臺三方雙贏的激勵廣告生態體系,旗下產品「酷劃鎖屏」「淘新聞」分別爲鎖屏、資訊行業的領跑者。數據庫
伴隨着公司服務端架構向微服務演進的過程當中,服務增多,運維成本提升,資源利用率低,等問題日益凸顯,目前公司服務器規模超過700+臺ECS,服務數量1000+,隨着容器化技術的成熟,計劃在近期大規模將生產環境遷移到阿里雲容器服務平臺上,但因爲VxLan等主機轉發模式的Overlay網絡均有必定的性能損耗,因此咱們將目光瞄準阿里雲容器服務平臺開源的terway網絡插件,指望使用可以動態綁定彈性網卡的容器服務達到ECS的網絡性能,進而對terway網絡性能進行詳細的評估。後端
本測試基於阿里雲容器服務Kubernetes版(1.12.6-aliyun.1),Kubernetes集羣使用阿里雲控制檯建立,測試分兩部分:服務器
本測試的全部網絡流量均爲跨節點通訊(容器分佈在不一樣的宿主機節點上) 本測試的全部測試均穿插測試超過3組取結果平均值網絡
吞吐量,PPS測試使用iperf3 版本信息以下:mybatis
iperf 3.6 (cJSON 1.5.2)
Linux iperf3-terway-57b5fd565-bwc28 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64
Optional features available: CPU affinity setting, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing
複製代碼
測試機命令:架構
# 啓動服務器模式,暴露在端口16000,每1秒輸出一次統計數據
iperf3 -s -i 1 -p 16000
複製代碼
陪練機命令:運維
# 測試吞吐量
# 客戶端模式,默認使用tcp通訊,目標機爲172.16.13.218,持續時間45,-P參數指定網卡隊列數爲4(跟測試的機型有關),目標端口16000
iperf3 -c 172.16.13.218 -t 45 -P 4 -p 16000
# 測試PPS
# 客戶端模式,使用udp發包,包大小爲16字節,持續時間45秒,-A指定CPU親和性綁定到第0個CPU
iperf3 -u -l 16 -b 100m -t 45 -c 172.16.13.218 -i 1 -p 16000 -A 0
# 測試延遲
# ping目標機30次
ping -c 30 172.16.13.218
複製代碼
測試機型選用ecs.sn1ne.2xlarge,規格詳情以下 socket
說明:縱軸表達流量流出方向,橫軸表達流量流入方向,因此組合狀況一共有9種
名詞解釋:測試機型選用ecs.sn1ne.8xlarge,規格詳情以下
說明:縱軸表達流量流出方向,橫軸表達流量流入方向,因此組合狀況一共有9種
名詞解釋:
terway的網絡性能測試中表現出了與宣傳一致的性能,經過與做者的溝通中瞭解到,因爲將彈性網卡直接放入POD的namespace內,雖然網卡驅動的中斷依然由宿主機內核完成,可是網絡包不會出如今宿主機namespace的網絡棧,減小了宿主機的一層cni網橋轉發及複雜路由的性能損失,這也是爲何在某些場景下超過宿主機網絡棧性能的表現。