SOFAMOSN持续演进路径及实践分享
Ø 支持必要的admin接口性能 0.1.0 0.2.0 0.3.0 0.4.0 Ø 内存复用框架 Ø Slab style buffer Ø Raw-Epoll模式 Ø 读合并 Ø 协程池化 Ø 调度均衡 Ø SOFARPC深度优化 Ø TLS官方库IO优化 Ø HTTP1.1/HTTP2.0 IO优化 Ø 日志操作异步化&多次合 并 Ø 基于RCU的高性能配置更 新安全 能需求上不匹配,如GRPC trailer实现技术案例 – HTTP/2.0优化 优化思路:适配MOSN框架,复用官方实现核心结构体和解析流程 Ø 框架适配 ü IO框架 ü 内存复用框架 ü workerpool协程池框架 Ø 功能支持 ü 请求流式处理模式 ü 热升级 ü metrics ü 修复HTTP/2 headers key不支持冒号开头字段的问题 ü 适配envoy的HTTP2配置项 Ø 代码管理 New http2(4 core) 17200 57ms 40M 395%技术案例 – 长连接网关RawEpoll模式 经典Golang netpoll模型 ² 问题:协程数量与链接数量成正比,大 量链接场景下,协程数量过多 u Stack内存开销 u Read buffer开销 u Runtime调度开销 参考阅读:million-websockets-and-go Netpoll0 码力 | 29 页 | 7.03 MB | 5 月前3Istio控制平面组件原理解析
ü通过Template润色数据 ü使用Go的协程异步Flush到Adapter üAdapter展示数据 ü响应envoy数据处理完成问题讨论 Report流程回顾 üEnvoy异步批量发送数据给Mixer üMixer使用协程池处理Adapter ü处理完成所有Adapter才响应Envoy 疑问 协程池堵塞是否会影响envoy性能?Mixer协程池 ü 初始化一定量worker(协程) ü 监听同一队列0 码力 | 30 页 | 9.28 MB | 5 月前3Service Mesh结合容器云平台的思考和实践
创建agent对象,包含前面创建的envoy结构体,一个epochs的map,3个channel:configCh, statusCh和 abortCh。 3. 创建watcher并启动协程执行watcher.Runwatcher.Run首先启动协程执行agent.Run(agent的主循环),然 后调用watcher.Reload(kickstart the proxy with partial state (in 置是所有certificate算出的sha256哈希值。 2. configCh的这个事件会被agent.Run监控到,然后调用agent.reconcile。 3. reconcile方法会启动协程执行agent.waitForExit从而启动envoy看reconcile方法名就知道是用来保证desired config和current config保持一致的。reconcile首先会检查desired0 码力 | 28 页 | 3.09 MB | 5 月前3蚂蚁金服网络代理演进之路
跨团队合作需要考虑技术栈落地成本 Golang性能,成本符合蚂蚁实际需求 近十年的网络代理研发,运维经验SOFAMosn模块与能力划分SOFAMosn协程模型 ü 一条TCP连接对应一个Read协程,执行收包,协议解析 ü 一个请求对应一个worker协程,执行业务处理,proxy和Write逻辑SOFAMosn能力扩展 ü 协议扩展 MOSN 通过使用同一的编解码引擎以及编/解码器核心接口,提供协议的0 码力 | 46 页 | 19.93 MB | 5 月前3BRPC与UCX集成指南
1 用UCX实现BRPC对RDMA的支持 徐逸锋2 BRPC简介 ●BRPC是Curve的基础通讯框架 ●支持远程过程调用 –C++ –TCP传输 –bthread协程(m:n调度,减少基于内核的下文切换 ,减少cache miss) ●多协议支持 –baidu_std,http,grpc… ●protobuf3 BRPC简介 ●Client/Server架构 ●使用Protobuf定义协议文件 ●Tag –MPI使用 ●Stream –官方不推荐30 WORKER ●worker是UCX通讯中的核心概念,它是一个进度引擎(progress engine) ●worker既不是协程也不是线程,而是一个状态机,可以通过不停地调用 ucp_worker_progress(worker)完成功能。如果你用过libuv或者libevent的evbuffer,它们有点 像 proact0 码力 | 66 页 | 16.29 MB | 5 月前3Curve核心组件之Client - 网易数帆
热升级NEBD总体介绍 新版本Client/NEBD性能优化NEBD 整体介绍 热升级之前,QEMU是直接链接curve-client, 所以client版本需要升级时,需要对QEMU进 程进行重启。NEBD 整体介绍 在QEMU和Curve Client中间加入热升级模块,避 免直接依赖 热升级模块是CS结构: NEBD Client(part1):只包含轻量的业务逻辑, 这种情况下单线程只有 89055 iops 发送RPC阻塞了用户线程,导致iops下降 优化点: 增加队列,用户请求放入队列,由后台线 程负责发送 86.4K -> 130KCLIENT性能优化 发送RPC耗时较长 增加发送线程个数 在bthread协程中使用std::mutex/spinlock,在大量并发的情况下,会阻塞worker线程,也 存在瓶颈 std::mutex/spinlock0 码力 | 27 页 | 1.57 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
ü 整体性能提升约 30% Ø内存 ü SLAB-style buffer pool ü 内存优化 ØIO ü IO 优化 ü IO 均衡 Ø调度 ü P调度均衡 ü 池化 worker 协程 Ø其他 ü Log 优化 ü Codec 优化:减少解包等绑核 2 Ø单核绑核 runtime 执行性能更好 ü单次写操作绑核 3us,不绑核 5us Ø更好的 G-P-M cache locality0 码力 | 44 页 | 4.51 MB | 5 月前3TiDB中文技术文档
CN) 构建 1.1 Alpha 1.0 Pre-GA RC4 RC3 RC2 RC1 TiDB 路线图 用户案例 北京银行 海航 今日头条 转转 Mobike 饿了么(一) 饿了么(二) 易果生鲜 同程旅游 去哪儿 G7 一面数据 凤凰网 猿辅导 Mobikok 二维火 客如云 Ping++ 乐视云 零氪科技 威锐达测控 盖娅互娱 游族网络 西山居 FUNYOURS JAPAN 万达网络 佐助金融 360金融 TLS 握手时未 出示自己的身份证书,也能正常建立 TLS 连接。 可以通过 SHOW STATUS LIKE "%Ssl%"; 了解当前连接的详细情况,包括是否使用了安全连接、安全连接采用的加密协 议、TLS 版本号等。 以下是一个安全连接中执行该语句的结果。由于客户端支持的 TLS 版本号和加密协议会有所不同,执行结果相应地 也会有所变化。 1. mysql> SHOW STATUS LIKE 执行效率。有两种 方式可以使用 Prepared 语句: 大多数 MySQL Driver 都支持 Prepared 语句,比如 MySQL Connector/C。这种方式可以通过 Binary 协 议直接调用 Prepared 语句 API。 通过 PREPARE , EXECUTE 以及 DEALLOCATE PREPARE 这三个语句也可以实现 Prepared 语句,这种方式不如0 码力 | 444 页 | 4.89 MB | 6 月前3Service Mesh的实践分享
JSON over HTTP JSON over HTTP多语言服务端接入 • Registry Agent • sidecar • 注册代理 • 健康检查 • 服务端受限于Proxy支持的协 议(目前只支持HTTP 1.1) Local Proxy Web Server Service Registry API Gateway 健康检查 服务注册 Registry agent0 码力 | 30 页 | 4.80 MB | 5 月前3Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?
灰度发布 流量劫持+ Sidecar(envoy) 流量劫持+ Sidecar(envoy) 服务调用 通过Istio Pilot 下发(xDS协议) 通过 Traffic Director(xDS协 议) 服务发现 k8s Traffic DirectorPart 3:ServiceMesh灵魂拷问三:要不要支持虚拟机? 创新思路:补齐虚拟机的短板,向容器看齐,维持一致的用户体验 镜像0 码力 | 43 页 | 2.90 MB | 5 月前3
共 24 条
- 1
- 2
- 3