其他
蚂蚁金服 Service Mesh 大规模落地系列 - 核心篇
揭秘 2019 Service Mesh 双十一大考
Service Mesh 基础概念
数据面:SOFAMosn。蚂蚁金服使用 Golang 研发的高性能网络代理,作为 Service Mesh 的数据面,承载了蚂蚁金服双十一海量的核心应用流量。 控制面:SOFAMesh。Istio 改造版,落地过程中精简为 Pilot 和 Citadel,Mixer 直接集成在数据面中避免多一跳的开销。
双十一落地情况概览
基础能力建设
一条 TCP 连接对应一个 Read 协程,执行收包,协议解析; 一个请求对应一个 worker 协程,执行业务处理,proxy 和 Write 逻辑;
SOFARPC; HTTP1.x/HTTP2.0; Dubbo;
TCP proxy; Fault injection;
流量镜像; RBAC鉴权;
go 在 RSA 上没有太多优化,go-boring(CGO)的能力是 go 的1倍; p256 在 go 上有汇编优化,ECDSA 优于go-boring; 在 AES-GCM 对称加密上,go 的能力是 go-boring 的20倍; 在 SHA、MD 等 HASH 算法也有对应的汇编优化;
基于 sync.Pool; slice 复用使用 slab 细粒度,提高复用率; 常用结构体复用;
前期准备
整体增加 CPU | 每跳 RT | 内存占用峰值 | |
优化前 | 20% | 0.8ms | 2365M |
优化后 | 6% | 0.2ms | 253M |
部分优化措施
GC 优化,减少长尾请求
内存回收策略
后序
🎉 奖励支持 SOFAStack 的你~