論文對阿里巴巴集群中部署的大規(guī)模微服務進行了全面的研究。他們分析了 7 天內 20,000 多個微服務的行為,并根據收集的 100 億條調用跟蹤來分析它們的特征。該論文獲得SOCC 2021最佳論文獎。
他們發(fā)現(xiàn):
-
微服務圖在運行時是動態(tài)的
-
大多數圖形像樹一樣分散生長
-
調用圖的大小遵循重尾分布
根據他們的發(fā)現(xiàn),他們提供了一些有關提高微服務運行時性能的實用技巧。他們還開發(fā)了一個隨機模型來模擬微服務調用圖依賴關系,并表明它近似于他們收集的數據集(可在https://github.com/alibaba/clusterdata獲?。?。
一個微服務運行在多個容器上。對前端微服務的調用會觸發(fā)對其他微服務的調用,依此類推。在生成的調用圖中,每條邊將上游微服務 (UM) 連接到它調用的下游微服務 (DM)。呼叫的響應時間 (RT) 是 UM 呼叫其 DM 到收到響應之間的時間。
阿里巴巴集群使用Kubernetes來管理裸機。在線服務(例如微服務)和離線批處理作業(yè)共存于同一個裸機節(jié)點中,以提高資源利用率。有狀態(tài)服務(即數據庫和Memcached)部署在專用集群中。
微服務調用圖的大小遵循重尾分布。大約 10% 的調用圖由 40 多個微服務階段組成。最大的調用圖甚至可以包含數百到數千個微服務。對于包含超過 40 個微服務的調用圖,其微服務中大約 50% 是 Memcached(MC)。
發(fā)現(xiàn):文章來源:http://www.zghlxwxcb.cn/news/detail-759877.html
- 調用圖變得更深,查詢的緩存未命中率迅速增加。當數據在緩存中未命中時,查詢將發(fā)送到數據庫服務。
- 超過10%的微服務對的乘積>=5,這意味著阿里巴巴集群中很多微服務對具有很強的耦合依賴關系。
- 微服務調用率與 CPU 利用率和 Java 年輕代垃圾回收 (Young GC) 高度相關,但與內存利用率無關。這意味著與內存利用率相比,CPU 利用率和 Young GC 是微服務容器資源壓力更好的指標。阿里巴巴微服務軌跡中大多數容器的內存利用率在運行時幾乎穩(wěn)定(方差小于 10%)。
- 由于主機 CPU 利用率較高,響應時間 (RT) 可能會大大縮短。當主機CPU利用率超過40%(或80%)時,微服務的RT平均下降20%(或30%)以上。
- 這些結果表明,大多數在線微服務對 CPU 干擾很敏感,強烈需要更高效的資源調度器,能夠很好地平衡不同主機之間的 CPU 利用率。
- 跟蹤顯示,每分鐘跨主機的 CPU 利用率差異可能高達 20%,這意味著有機會更好地平衡跨主機的批處理工作負載。
https://www.jdon.com/70550.html文章來源地址http://www.zghlxwxcb.cn/news/detail-759877.html
到了這里,關于Metadata:分析阿里巴巴的微服務依賴圖和性能的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!