大规模分布式系统架构下调测能力构建之道jpg) QCon 全球软件开发大会 INTERNATIONAL SOFTWARE DEVELOPMENT CONFERENCE BEIJING 2017 # 大规模分布式系统架构下调测能力构建之道 天弘基金 李鑫 主办方 Geekbang. InfoQ ## 促进软件开发领域知识与创新的传播 大型规模应用+契约协同 ## 服务化后的问题 多团队协同的分布式环境下,不仅环境“重”,而且外部的服务是别的团队开发的,你很难得到一个稳定、快速的外部服务提供环境,在此背景下进行功能/接口调测存在如下困难: 开发依赖重  解决之0 码力 | 19 页 | 2.74 MB | 2 年前3
Go性能优化概览-曹春晖首先,是发现问题 API 压测 全链路压测 进 pprof 寻找(可能的) 故障原因 CPU 用爆了?90%? 内存用爆了?OOM? Goroutine 用爆了?80w? 线程数爆了? 延迟太高? 按照不同的情况 选择不同的方案 生产环境被 高峰流量打爆了 线上一定要开 pprof 如果有安全考虑 那也一定要有能通过配置开启的能力 ## 压测时关注哪些服务指标 ## RED 2.8, Statistics) ## 压测时关注哪些服务指标 因为我们是 Go 的服务,还可以额外看看: • Goroutine 数,线程数 - 如果 Goroutine 数很多,那这些 Goroutine 在干什么? • GC 频率,gctrace 的内容(线上保存 gctrace 的话,注意硬盘类型),GC 的 • Memstats 中的其它指标: goroutinesDesc: NewDesc( 4. goroutine 数量过多 -> 从 profile 网页进去看看 goroutine 都在干什么 -> 查死锁、阻塞等问题 -> 个别不在意延迟的选择第三方库优化 ## 压测手段 ## & wrk - a HTTP benchmarking tool ## HEY Vegeta CI passing go report C reference gitter0 码力 | 40 页 | 8.69 MB | 2 年前3
1.2 Go在Grab地理服务中的实践Go在Grab地理服务中的实践 ’ alt=‘OCR图片’/> 大纲 What’s Grab 一个典型的派单流程 一个核心地理服务系统演进历程 Why go 压测与调优 QA What’s Grab 东南亚最大的出行平台 GopherChina2018 连接供(Supply,司机)需(Demand,乘客) GopherChina2018 从派单流程说起 派单流程 如何支持多引擎 比如S2 永远在路上 ’ alt=‘OCR图片’/> 大纲 What’s Grab 一个典型的派单流程 Nearby这个核心地理服务系统演进历程 Why go 压测与调优 QA Why Go? 业务场景 大量的几何运算 大流量网络吞吐 CPU-Bound & I/O-Bound 业务场景 大量的几何运算 大流量网络吞吐 CPU-Bound What’s Grab 一个典型的派单流程 Nearby这个核心地理服务系统演进历程 Why go 压测与调优 QA 基于生产数据的测试 GoReplay 流量重放 格式易读 无侵入 Golang GREPLAY ’ alt=‘OCR图片’/> 分布式并行压测 Vegeta + Fabric Vegeta Golang ○ 不只是命令行 也可以作为Library0 码力 | 78 页 | 4.26 MB | 1 月前3
1.1 基于Go构建滴滴核心业务平台的实践’ alt=‘OCR图片’/> 链路优化-压测 如何为诊断系统瓶颈 系统能够承载多少流量? 需要回答的问题 吞吐瓶颈在什么地方? 新建机房是否可用? 灾备预案是否可行? 非“函数式“业务 传统压测的问题 难以通过流量回放压测 难以通过线下等比放大估计 ’ alt=‘OCR图片’/> 全链路压测 滴滴如何在线上环境压测 方案 流量标识方案 实施基础 全局流量标识 alt=‘OCR图片’/> 全链路压测 滴滴如何在线上环境压测 压测频率 新机房容量测试 周期业务流程压测 压测范围 涉及所有业务模块 峰值压力的 150%+ 压测数据 抓取线上日志 Agent模拟 ’ alt=‘OCR图片’/> 全链路压测 滴滴如何在线上环境压测 ’ alt=‘OCR图片’/> 全链路压测 滴滴如何在线上环境压测 详尽系统数据 机房流量上限 机房流量上限 系统瓶颈分析 故障处理预案 降级,限流预案 事故处理演练 成本过高 压测通道维护成本 风险过高 业务人员配合成本 线上事故风险 ’ alt=‘OCR图片’/> 服务迁移 部分模块成为了系统瓶颈 ’ alt=‘OCR图片’/> 希望什么 滴滴如何迁移业务 业务无感知/微感知 服务迁移稳定 逻辑功能无差异 ’ alt=‘OCR图片’/> 迁移经验-How0 码力 | 44 页 | 2.77 MB | 1 月前3
Apache ShardingSphere 中文文档 5.3.2BenchmarkSQL ShardingSphere Proxy 分片性能测试 ..... 415 测试目的 ..... 415 测试方法 ..... 415 测试工具微调 ..... 415 压测环境或参数建议 ..... 415 附录 ..... 417 BenchmarkSQL 5.0 PostgreSQL 语句列表 ..... 420 11.6 模块测试 ..... 428 重新搭建一整套与生产环境类似的压测环境,成本过高,并且往往无法模拟线上环境的复杂度以及流量。因此,业内通常选择全链路压测的方式,即在生产环境进行压测,这样所获得的测试结果能够准确地反应系统真实容量和性能水平。 #### 8.9.2 挑战 全链路压测是一项复杂而庞大的工作。需要各个微服务、中间件之间配合与调整,以应对不同流量以及压测标识的透传。通常会搭建一整套压测平台以适用不同测试计划。在数据库 为了保证生产数据的可靠性与完整性,需要将压测产生的数据路由到压测环境数据库,防止压测数据对生产数据库中真实数据造成污染。这就要求业务应用在执行SQL前,能够根据透传的压测标识,做好数据分类,将相应的SQL路由到与之对应的数据源。 #### 8.9.3 目标 Apache ShardingSphere 关注于全链路压测场景下,数据库层面的解决方案。将压测数据自动路由至用户指定的数据库,是 Apache0 码力 | 508 页 | 4.44 MB | 2 年前3
Apache ShardingSphere 中文文档 5.4.111.5.2 BenchmarkSQL ShardingSphere Proxy 分片性能测试 …… 436 测试目的 …… 436 测试方法 …… 436 测试工具微调 …… 436 压测环境或参数建议 …… 437 附录 …… 438 BenchmarkSQL 5.0 PostgreSQL 语句列表 …… 441 11.6 模块测试 …… 449 11.6.1 SQL 重新搭建一整套与生产环境类似的压测环境,成本过高,并且往往无法模拟线上环境的复杂度以及流量。因此,业内通常选择全链路压测的方式,即在生产环境进行压测,这样所获得的测试结果能够准确地反应系统真实容量和性能水平。 #### 8.9.2 挑战 全链路压测是一项复杂而庞大的工作。需要各个微服务、中间件之间配合与调整,以应对不同流量以及压测标识的透传。通常会搭建一整套压测平台以适用不同测试计划。在数据库 为了保证生产数据的可靠性与完整性,需要将压测产生的数据路由到压测环境数据库,防止压测数据对生产数据库中真实数据造成污染。这就要求业务应用在执行SQL前,能够根据透传的压测标识,做好数据分类,将相应的SQL路由到与之对应的数据源。 #### 8.9.3 目标 Apache ShardingSphere 关注于全链路压测场景下,数据库层面的解决方案。将压测数据自动路由至用户指定的数据库,是 Apache0 码力 | 530 页 | 4.49 MB | 2 年前3
Apache ShardingSphere v5.5.0 中文文档BenchmarkSQL ShardingSphere Proxy 分片性能测试 ..... 462 测试目的 ..... 462 测试方法 ..... 462 测试工具微调 ..... 462 压测环境或参数建议 ..... 463 附录 …… 464 BenchmarkSQL 5.0 PostgreSQL 语句列表 …… 467 11.6 模块测试 …… 475 11.6.1 SQL 重新搭建一整套与生产环境类似的压测环境,成本过高,并且往往无法模拟线上环境的复杂度以及流量。因此,业内通常选择全链路压测的方式,即在生产环境进行压测,这样所获得的测试结果能够准确地反应系统真实容量和性能水平。 #### 8.9.2 挑战 全链路压测是一项复杂而庞大的工作。需要各个微服务、中间件之间配合与调整,以应对不同流量以及压测标识的透传。通常会搭建一整套压测平台以适用不同测试计划。在数据库 为了保证生产数据的可靠性与完整性,需要将压测产生的数据路由到压测环境数据库,防止压测数据对生产数据库中真实数据造成污染。这就要求业务应用在执行SQL前,能够根据透传的压测标识,做好数据分类,将相应的SQL路由到与之对应的数据源。 #### 8.9.3 目标 Apache ShardingSphere 关注于全链路压测场景下,数据库层面的解决方案。将压测数据自动路由至用户指定的数据库,是 Apache0 码力 | 557 页 | 4.61 MB | 1 年前3
Apache ShardingSphere 中文文档 5.2.0BenchmarkSQL ShardingSphere Proxy 分片性能测试 ..... 307 测试目的 ..... 307 测试方法 ..... 307 测试工具微调 ..... 308 压测环境或参数建议 ..... 308 附录 ..... 310 BenchmarkSQL 5.0 PostgreSQL 语句列表 ..... 312 6.6 模块测试 ..... 321 |数据加密|数据加密,是保证数据安全的基本手段。ShardingSphere 提供一套完整的、透明化、安全的、低改造成本的数据加密解决方案。| |影子库|在全链路压测场景下,ShardingSphere 通过影子库功能支持在复杂压测场景下数据隔离,压测获得测试结果可准确反应系统真实容量和性能水平。| #### 1.1.3 产品优势 ## · 极致性能 驱动程序端历经长年打磨,效率接近原生 JDBC,性能极致。 重新搭建一整套与生产环境类似的压测环境,成本过高,并且往往无法模拟线上环境的复杂度以及流量。因此,业内通常选择全链路压测的方式,即在生产环境进行压测,这样所获得的测试结果能够准确地反应系统真实容量和性能水平。 #### 3.9.2 挑战 全链路压测是一项复杂而庞大的工作。需要各个微服务、中间件之间配合与调整,以应对不同流量以及压测标识的透传。通常会搭建一整套压测平台以适用不同测试计划。在数据库0 码力 | 449 页 | 5.85 MB | 2 年前3
美团点评2018技术年货运行时的投放内容进行监控,其主要监控两个指标:运营位数及每个运营位的配置总数。这样做可以带来以下几个好处: 1. 对接入的业务数及机器数进行统计。 2. 通过SDK的配置总数监控,防止数量超过最大限制。 同时,对于非SDK的其他性能指标,我们采用统一的监控平台—CAT进行监控,其中包括:APPKIT中心服务的调用QPS,机器的性能,网络流量等通用指标。 ## 五、 底层模型—灵活性设计 ### 构建时对SDK版本升级进行提示(必要时进行强制),不过大部分运营位使用的都是基础功能,在很大程度上不需要进行频繁地升级。 ## 效果对比 缓存方案与SDK方案的效果对比如下: |QPS/性能指标(单位ms)|平均线|90线|95线|99线|99.9线| |---|---|---|---|---|---| |缓存方案(5.6K)|0.4|2.0|2.0|2.8|2.8| |SDK化方案(5w)|0 器化及集群智能调度等领域提供业界领先的、统一的解决方案,CAT 目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等服务。 本文会对 CAT 的客户端、性能等做详细深入的介绍,前不久我们也发过一篇 CAT 相关的文章,里面详细介绍了 CAT 客户端和服务端的设计思路,欲知更多细节,欢迎阅读《深度剖析开源分布式监控0 码力 | 229 页 | 61.61 MB | 2 年前3
Apache ShardingSphere 中文文档 5.1.0逻辑列 …… 56 密文列 …… 56 查询辅助列 …… 56 明文列 …… 56 4.8.5 使用规范 …… 56 支持项 …… 56 不支持项 …… 56 4.9 影子库压测 …… 57 4.9.1 背景 …… 57 4.9.2 挑战 …… 57 4.9.3 目标 …… 57 4.9.4 核心概念 …… 57 生产库 …… 57 影子库 …… 57 /7/d/9/27d9ecac1d1f0fd1ab1aa52a1e8a369c/p17_1.jpg) ### 1.2 解决方案 |解决方案/功能|分布式数据库|数据安全|数据库网关*|全链路压测*| |---|---|---|---|---| ||数据分片|数据加密|异构数据库支持|影子库| ||读写分离|行级权限(TODO)|SQL 方言转换(TODO)|可观测性| ||分布式事务|SQL 项目的质量。 Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。目前,数据分片、读写分离、数据库高可用、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。Apache ShardingSphere 目前已提供数十个 SPI0 码力 | 406 页 | 4.40 MB | 2 年前3
共 673 条
- 1
- 2
- 3
- 4
- 5
- 6
- 68













