蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘• 路由 • 后端管理4 性能单核优化点 1 Ø绑核 ü 更好的 runtime G-P-M data locality亲和性 ü 整体性能提升约 30% Ø内存 ü SLAB-style buffer pool ü 内存优化 ØIO ü IO 优化 ü IO 均衡 Ø调度 ü P调度均衡 ü 池化 worker 协程 Ø其他 ü Log 优化 ü Codec 优化:减少解包等绑核 locality 亲和性 üRuntime 内存使用率提升,arena 区内存申请频率低,大小更小 üMheap 申请系统内存减少约60%内存 3 ØSLAB-style buffer pool ü减少内存 copy ü压测场景下内存复用率90% ØGolang 内存模型亲和 üP中 mcache 缓存小于 32K 的小内存块,最大 2M ü小内存分配顺序 Pmcache -> mcentral mcentral -> mheap -> arena ü大于 32K 的大内存分配顺序 mheap -> arena ØGC 优化 ü避免入堆 ü减少内存 copy ü内存使用整体化,降低 scanobject 成本 ü使用 GC 亲和的数据结构 ü适度使用 sync.Pool ü…IO 4 Ø优化 ü尽可能多读,同时减少SetReadDeadline频繁调用,实现见 IOBuffer.ReadOnce0 码力 | 44 页 | 4.51 MB | 6 月前3
SOFAMOSN持续演进路径及实践分享Retry、DirectResponse、 HTTP Header add/delete、 流控、故障注入等 Ø 支持必要的admin接口性能 0.1.0 0.2.0 0.3.0 0.4.0 Ø 内存复用框架 Ø Slab style buffer Ø Raw-Epoll模式 Ø 读合并 Ø 协程池化 Ø 调度均衡 Ø SOFARPC深度优化 Ø TLS官方库IO优化 Ø HTTP1 基本实现了RFC中MUST部分,部分功 能需求上不匹配,如GRPC trailer实现技术案例 – HTTP/2.0优化 优化思路:适配MOSN框架,复用官方实现核心结构体和解析流程 Ø 框架适配 ü IO框架 ü 内存复用框架 ü workerpool协程池框架 Ø 功能支持 ü 请求流式处理模式 ü 热升级 ü metrics ü 修复HTTP/2 headers key不支持冒号开头字段的问题 ü 适配envoy的HTTP2配置项 57ms 40M 395%技术案例 – 长连接网关RawEpoll模式 经典Golang netpoll模型 ² 问题:协程数量与链接数量成正比,大 量链接场景下,协程数量过多 u Stack内存开销 u Read buffer开销 u Runtime调度开销 参考阅读:million-websockets-and-go Netpoll implmented in Golang runtime0 码力 | 29 页 | 7.03 MB | 6 月前3
陌陌Service Mesh架构实践提升服务器性能(缩减耗时绝对值) API层接口耗时增长小于6%21/24 数据平面资源占用 与业务容器共享CPU、内存资源配额 为Agent JVM分配256M内存资源 服务器消耗增加约10% 分配方式 内存资源 服务器资源 维持现有内存使用率与 服务器配置的最坏情况 实际需预留 600M内存22/24 数据平面兼容原有架构 对接原有系统 • 使用原有系统SDK、私有协议 直连访问 兼容未升级服务0 码力 | 25 页 | 1.25 MB | 6 月前3
蚂蚁金服网络代理演进之路Localhost or Iptables 透明劫持和加速大规模问题 10万+实例 动态服务发现 运维 § 对控制平面性能,稳定性带来巨 大挑战 § 单实例数万路由节点,数千路由 规则,不仅占用内存,对路由匹 配性能也有较大影响 § SOFAMosn发布业务无感知,平 滑升级 § 海量,高频的发布订阅动作 § 发布分组策略,间隔策略平滑升级 l 支持新老 mosn 容器间链接、metrics 等多种协议无损迁移资源问题 CPU • Cpuset模式,与业务App共享独占核 • Cpushare模式,与应用容器共享物理机Cpu资源 • 根据具体业务情况设置Cpu资源 内存 • 使用应用内存的1/16 • 与业务Share内存,最大限制使用1G,存在超卖问题,触发Pod 级别的direct reclaim问题 磁盘 • Sidecar与业务容器共享磁盘,并且不受容器启动顺序对磁盘分配的影响,单独mount配置文件 来的 影响 Chan的吞吐极限,减少主业务数据的传递 CGO对于TLS 签名计算有83%的性能衰退,AES对称加密 使用tmpfs 或者 mmap MAP_LOCKED 优化IO负载较高对共享内存刷page cache的影响 Unix Domain socket较TCP socket 提升8%性能TLS性能 ü go在RSA上没有太多优化,go-boring(CGO)的能力是 go的1倍。0 码力 | 46 页 | 19.93 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?ServiceMesh发展趋势(续) 蚂蚁金服 敖小剑 棋到中盘路往何方Part 0:前言 5月底,我在Cloud Native Meetup上做了一个“ServiceMesh 发展趋势:云原生中流砥柱”的演讲,当时主要讲了三块内容: - Service Mesh产品动态 - Service Mesh发展趋势 - Service Mesh与云原生 今天的内容可以视为是上次演讲部分内容的深度展开,如社区 关心的Mixer0 码力 | 43 页 | 2.90 MB | 6 月前3
蚂蚁金服双十一 Service Mesh 超大规模落地揭秘资源域A 资源域B 保活态 运行态 资源域A 资源域B 运行态 保活态 常规方案操作步骤 分时调度操作步骤23 分时调度-MOSN价值 MOSN 作用:保活态节点流量转发,降低保活态节点内存占用 保活意义: * 应用长连接维持 * DB 连接维持 * 缓存维持 * 无需预热可快速恢复 MOSN APP MOSN APP Client Pod 运行态 Pod0 码力 | 26 页 | 2.71 MB | 6 月前3
Service Mesh 在蚂蚁金服生产级安全实践Sidecar 与 SDS Server 采用 mTLS 通信,采用静态证书方案,通过 Secret Mount 方式获取通信证书 Sidecar 与 SDS Server 采用 UDS 方式实现纯内存通信,不需要使用证书。基于 Secret Discovery Service Sidecar 的证书管理方案 Envoy SDS 证书管理流程基于 Secret Discovery Service0 码力 | 19 页 | 808.60 KB | 6 月前3
Service Mesh Meetup #3 深圳站不是一种新团队; DevOps 不是一种新角色; DevOps 是一种文化:一切自动化,工具化,规范化;选择哪个 CI/CD 工具?Docker stats 查看 Docker 服务所占用的CPU和内存开销DroneDrone • 一款使用 Go 开发,基于容器技术的 CI/CD 系统,能够单独部署,支持几乎所有的 Git 平台(Github,Gitlab,Bitbucket,Gogs,Gitea0 码力 | 45 页 | 18.62 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路listchecker (黑白名单) • opa (Open Policy Agent) • rbac(连接到Istio CA) ü 实现Quota的Adapter • Memquota (基于单机内存) • Redisquota (基于外部redis) ü 实现Report的Adapter • Circonus • Cloudwatch • Dogstatsd • Fluentd •0 码力 | 37 页 | 7.99 MB | 6 月前3
共 9 条
- 1













