专栏名称: 高可用架构
高可用架构公众号。
目录
相关文章推荐
字节跳动技术团队  ·  字节跳动技术副总裁洪定坤:TRAE 想做 ... ·  昨天  
java1234  ·  跟阿里P9学 画架构图,永久免费了 ·  2 天前  
java1234  ·  跟阿里P9学 画架构图,永久免费了 ·  2 天前  
51好读  ›  专栏  ›  高可用架构

如何评估4亿用户线上容量性能上限:Linked Redliner架构解密

高可用架构  · 公众号  · 架构  · 2017-02-22 10:31

正文

请到「今天看啥」查看全文


,点击图片可缩放


Figure 2: Redliner system metrics rules 示例 ,点击图片可缩放


完全自动化


为了克服手动测试的缺点(如缺乏一致性,高维护成本等),我们需要一种非手动的方法。该方法用于启动性能测试、确定吞吐量容量、对系统性能下降的告警进行检查,以及在出现问题时优雅的停止测试以及进行回退。


我们在 Redliner 中自动化了上述过程,同时使用 LinkedIn 技术能力使其具备可靠性和可扩展性。Redliner 可以根据计划启动测试,通过 EKG 监控性能状况,并利用 A / B 测试平台 XLNT [1] 动态调整转移到目标服务实例的流量。


经过几次迭代(如下所述)后, Redliner 最终可以确定单个实例可以处理的最大吞吐量 QPS。整个端到端测试过程通常可以在不到一个小时完成。 Redliner 还可以生成测试报告,并在每个测试结束时识别服务的响应延迟变化,以及定位资源瓶颈(如果有)。如果服务资源过度冗余或不足, Redliner 会向服务相关人员发送电子邮件并提供具体建议。


Redliner 架构及生态


图 3 表示了 Redliner 的架构,并展示了与关键组件的交互,以实现流量转移和容量评估。 有几个关键组件:


  1. 业务分流层(代理/负载平衡器)

  2. 服务健康分析器

  3. 服务运行数据收集器


Figure 3: Redliner 及依赖模块,点击图片可缩放


业务分流层(代理/负载平衡器)


目前, Redliner 仅支持无状态服务; 即那些请求流量可以路由到机房中任意 SUT(Service Under Test)服务器或实例。这些访问的流量通过在负载均衡层的重新路由机制进行控制,使得动态流量转移成为可能。


业务转向层是 Redliner 实现动态业务转移的关键组件。 Redliner 确定要应用于目标实例的流量级别,并与 LiX( LinkedIn 实验服务)进行通信,相应对代理和负载均衡上的特定配置进行更改。


LiX 是 LinkedIn 转移流量的默认方式(包括 A / B 测试体系); 它通过底层基础设施提供了一种可控和安全的流量控制方式。通过更改代理和负载均衡的配置, Redliner 能够自动控制从调用客户端流向目标服务实例的流量。


服务运行数据收集器


容量评估和余量分析是基于对性能度量的评估,以确定 SUT 是否接近容量。 所有 LinkedIn 服务向 Autometrics [2] 发送指标。 Autometrics 是基于推送的实时指标收集系统。 Redliner 利用 Autometrics 实现系统级和服务级性能指标(如 QPS,请求延迟,错误率和 CPU /内存利用率)的实时数据获取。


服务健康分析器


Redliner 的服务健康工具 EKG [3] 可以分析上述性能指标,以确定服务的整体健康状况。 EKG 通过对选定的性能指标运行状况检查规则以进行分析。 Redliner 通过查询 EKG,以便在正常流量负载和测试负载之间进行性能比较。 它还为后续一些步骤查询健康检查结果。







请到「今天看啥」查看全文