NJSD eBPF 技术文档 - 0924版本
中间件数据存储场景 • ⽀持POSIX兼容的⽂件API • ⽀持低延迟的⽂件数据访问Curve⽂件系统⾯临的问题 • ⽤户态实现 • 稳定性/可靠性⾼ • 容易更新及维护 • 基于FUSE提供POSIX兼容⽂件接⼝ • 问题 • 相对kernel⽂件系统的实现(ext4, xfs)性能 差异⼤,延迟⾼FUSE⽂件IO读写流程 • 场景1 pytorch example ⽂件访问测试直接访问ext4 • 通过FUSE访问passthrough_ll底层ext4 • 内核调⽤延迟测试 • 与FUSE Daemon通讯120us左右,FUSE Daemon⼤概10us以内 • 瓶颈在/dev/fuse通讯开销基于FUSE可能的优化点 • 降低内核与libfuse通讯延迟 • 基于⽂件属性的操作内核直接返回? • 基于⽂件数据的操作先内核读写 cache?实现POSIX兼容API途径及问题 • BentoFS 基于rust的实现采⽤LD_Preload⽅式瓶颈分析 • 环境 • FUSE daemon使⽤ passthrough_ll 调⽤底层ext4 • 进程共享内存通信延迟10us+ • others 开销 10us+ • fuse_ll_ops开销10us-基于FUSE的优化框架 • 框架优化的要点 • 共享inode cache • 共享data0 码力 | 20 页 | 7.40 MB | 5 月前336-云原生监控体系建设-秦晓辉
rest_client_request_duration_seconds 针对 apiserver 的请求延迟的指标 • rest_client_requests_total 针对 apiserver 的请求量的指标 • kubeproxy_sync_proxy_rules_duration_seconds 同步网络规则的延迟指标 以及通用的进程相关的指标,进程的 CPU 内存 文件句柄等指标 Kubernetes apiserver的监控 • apiserver 通过 /metrics 接口暴露监控数据,直接拉取即 可 • apiserver 在 Kubernetes 架构中,是负责各种 API 调用 的总入口,重点关注的是吞吐、延迟、错误率这些黄金指 标 • apiserver 也会缓存很多数据到内存里,所以进程占用的 内存,所在机器的内存使用率都应该要关注 • 采集方式可以参考 categraf 仓库的 k8s/deployment k8s/apiserver- dash.json • apiserver_request_total 请求量的指标,可以统计每秒请求数、成功率 • apiserver_request_duration_seconds 请求延迟统计 • process_cpu_seconds_total 进程使用的CPU时间 • process_resident_memory_bytes 进程的内存使用量 Kubernetes控制面 c0 码力 | 32 页 | 3.27 MB | 6 月前3Curve设计要点
新一代分布式存储系统 Curve 李小翠Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多,线上异常演练 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: com/opencurve/curve 概述背景 01 02 03 04 总体设计 系统特性 近期规划背景 • 多个存储软件:SDFS、NEFS、NBS • 已有的开源软件:Ceph • 不能胜任性能、延迟敏感的场景 • 异常场景抖动较大(比如慢盘场景) • 去中心节点设计在集群不均衡的情况下需要人工运维 • 基于通用分布式存储构建上层存储服务背景 01 02 03 04 总体设计 系统特性 近期规划单卷4K随机读写IOPS 102k 39.7k 41.7k 127k 4K随机写 4K随机读 Ceph(L/N) Curve 151.89% 204.56% 单卷4K随机读写平均延迟(ms) 1.244 3.2 3.1 0.998 4K随机写 4K随机读 61.12 % 67.8% 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景0 码力 | 35 页 | 2.03 MB | 5 月前3Curve文件系统空间分配方案
© XXX Page 1 of 11 Curve文件系统空间分配方案(基于块的方案,已实现)© XXX Page 2 of 11 背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 据。 CurveFS方案设计(总体设计,只实现了部分) 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 Inline file/data tent进行记录即可,(0,100MiB,2MiB)。 所以,如果能对文件的多次空间申请分配连续的地址空间,则inode中记录的extent数量可以大大减少,能够降低整个文件系统的元数据量。 对于延迟分配和Inline file这两个特性,需要fuse client端配合完成。 空间分配 整体设计 分配器包括两层结构: 第一层用bitmap进行表示,每个bit标识其所对应的一块空间0 码力 | 11 页 | 159.17 KB | 5 月前3Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?
管理Mixer是许多客户不想负担的 • 进程外适配器强制运维管理适配器,增加此负担 • 性能 • 即使使用缓存,在数据路径中同步调用Mixer也会增加端到端延迟 • 进程外适配器进一步增加了延迟 • 授权和认证功能是天然适合mixer pipeline的,但是由于mixer 设计 的延迟和SPOF(单点故障)特性,导致直接在Envoy中实现 (Envoy SDS) • 复杂性 • Mixer使用一组称为模板的核心抽象,来描述传递给适配器的数据。0 码力 | 43 页 | 2.90 MB | 5 月前3在网格的边缘试探:企业 Istio 试水指南
• API稳定性问题:流量管理也仅仅是v1alpha3,用alpha特性发布 1.0的情况似乎比较罕见。 • 发布进度和质量:大版本以月计算的发布延迟,据我所知的 Release撤回发生了两次。 • 世纪难题:多出一层Sidecar造成的延迟。 • Pilot的性能,近几个版本一直在出问题。 • Mixer按照我个人的看法,API较为混乱,重构风险比较大Istio还用不用? • 你要的是不是API网关?0 码力 | 19 页 | 11.41 MB | 5 月前3MySQL 兼容性可以做到什么程度
Debezium • Streamsets • mysql-binlog-connector-java • Flink CDC 性能指标 • 25w rps • 8GB 大事务 • 5s 延迟* 下一步 • 验证更多工具 • GTID • 多流业务系统 上游 Single Source of Truth 问题背景 已有系统迁移怎么办? 下游Demo for ReplicationPolarDB-X 之间数据同步 • 支持 DDL 同步 • 支持事务复制、行级复制 已验证工具或系统 • MySQL/MariaDB • PolarDB-X 性能指标 • 1.5w rps • 1s 延迟* 下一步 • 多流 • GTID事务并行复制 • 更多源端完全兼容 MySQL 吗 03 History doesn't repeat itself but it often rhymes0 码力 | 18 页 | 3.02 MB | 5 月前3Curve 分布式存储设计
Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% 研究现状Curve块存储 1. 分布式块存储服务 2. KVM块存储服务 3. iSCSI协议 4. 容器云块存储(CSI) 应用场景Curve块存储 1 客户端分成NebdClient与 NebdServer两部分 2. NebdClient只做简单的转发 3. NebdServer实现大部分的客 户端逻辑Curve块存储 故障对I/O抖动延迟的影响 FAULTS CASE CURVE I/O 抖动Curve文件存储 1. 元数据服务 2. 高性能 3. 可扩展易运维 4. 云原生 设计目标Curve文件存储 1. 兼顾性能与容量的机器学习0 码力 | 20 页 | 4.13 MB | 5 月前3Curve核心组件之Client - 网易数帆
C u r v e 核 心 组 件 之 C l i e n t 吴汉卿CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 OpenStack 和 k8s • 网易内部线上无故障稳定运行400+天 • 已开源 • github主页: https://opencurve Client发送RPC处标记请求成功,并返回 Chunkserver收到RPC处标记请求成功,并返回NEBD性能优化 NEBD Client接收到IO请求后,直接发送 异步RPC(在用户线程) 发送异步4K RPC的平均延迟在11.26us, 这种情况下单线程只有 89055 iops 发送RPC阻塞了用户线程,导致iops下降 优化点: 增加队列,用户请求放入队列,由后台线 程负责发送 86.4K -> 130KCLIENT性能优化0 码力 | 27 页 | 1.57 MB | 5 月前3Service Mesh 高可用在企业级生产中的实践
三大技术优势: • 可观察性 • 流量控制 • 安全 Service Mesh 的优缺点 缺点 • 增加了复杂度 • 整体链路的复杂度 • 操作运维的复杂度 • 需要更专业的运维技能 • 带来延迟 • 平台的适配 Istio-Handbook:Service Mesh 概述6/总页数 互联互通,平滑迁移 Spring Cloud & Dubbo Service Mesh Monolithic 服务限流 • 接入层限流 • 调用外部限流服务限流 • 切面层/代理层限流 常用限 流架构23/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 拒绝策略 • 延迟处理 • 特权处理 常用限 流策略24/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 固定、滑动时间窗口限流 • 适合微服务接口 • 选定的时间粒度上限流 •0 码力 | 38 页 | 1.38 MB | 5 月前3
共 26 条
- 1
- 2
- 3