字节跳动服务端全链路压测体系随着字节业务的不断扩张,用户流量在不断提升,研发体系的规模和复杂性也随之增加。线上服务的稳定

全链路压测指的是基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,并持续调优的过程。常用于复杂业务链路中,基于全链路压力测试发现服务端性能问题。

随着公司业务的不断扩张,用户流量在不断提升,研发体系的规模和复杂性也随之增加。线上服务的稳定性也越来越重要,服务性能问题,以及容量问题也越发明显。为了及时暴露服务的各种稳定性问题,我们了引入了基于线上全链路压测的工具、研发体系。

本文主要介绍字节跳动的服务端全链路压测体系,以及字节跳动各种业务的全链路压测实践。

下图一个典型的网络架构,用户请求通过CDN溯源,经过TTGW,TLB,AGW,然后才到达业务服务PSM。(TTGW是头条的高性能4层负载均衡网关,TLB是七层负载均衡服务,AGW是头条统一业务Api接入层)

场景分类

主要目的

典型场景

主要特点

能力验证

验证在给定的软硬件条件下,系统能否具有预期表现

当前服务已经部署了n台机器,能否支持50万用户同时在线访问

1、软硬件环境都已经确定

2、有明确的性能目标

3、需要根据业务场景来构造压测数据和请求

容量规划

春节活动需要X亿人同时在线访问,系统需要如何调试?(性能优化,设计优化,资源预估)

1、它是一种探索性测试

2、常用于了解系统现状

3、需要根据系统现状,对未来系统进行一个预估和规划

性能调优

主要用于对系统性能进行调优

系统响应越来越慢,此时该如何处理?

1、对于代码级的优化,单实例压测即可

2、对于系统整体设计优化,需要集群压测,保证集群负载维持在一定水位

缺陷发现重现

发现/重现性能缺陷

服务线程死锁,内存泄漏等

1、需要对性能问题分类

2、针对每类问题构造对应的数据和压测策略

性能基准比较

系统新版本的性能验证

新版本的代码改动,是否有降低了系统性能,是否符合上线要求

1、有版本性能基准

2、固定环境因素的影响

3、AABDiff

4、diff置信度

在网络架构图中,明确展示了各系统各司其职,它们分别负责将用户请求做相应处理并将请求流转至下游服务。因此,根据压测方案的目的,选择一个合理的压测目标,可以减少大量的压测工作,提高压测效率。

目的

压测目标

压测带宽

从CDN、TLB处发压

春节活动需要X亿人同时在线访问,链路带宽是否足够?

压测业务逻辑

从汇聚机房、核心机房、卫星机房的AGW和业务服务发压

用户零点秒杀,是否能够保障商品、订单等系统一切正常?

压测异步消息

从MQproducer处发压

异步消息队列是否能够满足高压力场景?

在字节内部,线下测试环境是不允许压测的,由于线下资源不足,与线上环境差异大,压测出来的结论并不能充分保证线上的性能情况。因此本文指的压测都是在线上环境的压测。下文将重点介绍字节的全链路压测环境。

为了区分线上流量与压测流量,使服务可以针对压测流量做定制业务逻辑,服务架构体系在服务框架与服务治理层面设定了压测标记。

目的:

原理:

生效条件:

为了强化压测流量的管理,服务治理体系引入了压测开关的概念。压测开关作为总控制,所有服务框架必须判断压测开关是否打开,若打开才能允许通过压测流量,若关闭则只能拒绝压测流量。

对于压测数据的存储,必须将线上数据与压测数据做隔离,否则会导致压测数据量过大影响线上数据正常存取。

它是一个多功能压测平台,支持多种场景、模式的发压。Rhino统一管理了压测任务、压测数据、发压机、压测结果。集成了Bytemesh、User、Trace、Bytemock、Bytecopy等多个系统。

Rhino压测平台支持以下能力:

无法复制加载中的内容

根据不同业务的场景、以及压测的方案,业务方需要制定不同的发压方式,以达到压测预期效果。下面将介绍Rhino平台提供的四种发压方式,业务方需根据自身业务特点,选择适合的方式发压。

Fake流量压测是指用户自行构造压测请求进行压测。Rhino平台支持HTTP、Thrift两种协议的Fake流量发压。

Fake流量模式适合针对请求参数简单的接口压测,同时也适合针对特定请求进行压测。Rhino平台会为每个请求注入压测标记。

典型场景:

为了支持更多的协议与更复杂的压测场景,Rhino平台支持了GoPlugin发压模式。

依赖golang的plugin功能,运行时加载plugin文件,并加以执行

GoPlugin发压模式适合灵活构造请求数据、支持自定义协议、支持自定义发压场景,相当于所有发压场景都可以通过代码实现。注意Rhino平台对于GoPlugin模式不会注入压测标记,用户需在插件内加上压测标记。

为了使压测更贴近线上请求,Rhino平台支持了流量录制回放的发压模式,平台经过线上流量采集、线上流量改写为压测请求、压测流量回放三个步骤,将线上请求回放到压测目标中。

依赖bytecopy的采集流量能力,要求服务已经部署到线上,开启mesh,且有流量可以采集。

对于服务维度而言,如果想测试服务能承载多少QPS,每个接口的QPS分布情况,流量调度是一个比较合适的压测方式。Rhino平台支持了单实例的流量调度模式压测。

scheduler修改被测实例的consul权重,使流量不断打到目标实例中,而其他实例流量相应的减少,保持服务的总流量不变。压测的请求完全来自线上流量,不使用压测标识,因此压测流量的流转、存储均保持线上模式。同时scheduler会监控目标实例的服务指标,当服务指标到达阈值后将停止压测,将consul权重恢复至初始值。

下面将上述压测方式在压测目标、压测场景、优缺点维度下做对比,方便业务方选择合适的方式用于压测。

压测方法

Fake流量压测

自定义压测(Plugin)

流量录制回放

流量调度

作用目标

集群或单实例

单实例

压测场景

单接口/多接口(场景/流量配比)

单接口/多接口(任何形式)

服务维度

应用场景

新上线的服务;

压测方案为明确性能优化计划;

线上/线上任意协议接口接口;

单服务复杂压测场景;

跨多个服务混合场景;

压测数据构造复杂,要求数据多样性强;

线上数据快速压测;

单实例容量测试

缺点

压测数据构造形式单一

对用户代码能力要求较高;

任务需要自行调试

需要线上服务有流量;

服务开启mesh开关;

线上流量充足;

单实例不能线性反应整条链路的性能;

为了使压测结果更准确、使被测服务在压测过程中更安全,Rhino平台开发了一套压测专用的报警监控体系。分为实时客户端监控、被测服务端监控、ms报警监控。

公司的服务监控体系是基于metrics的30s一次聚合,但是对于压测任务而言,意味着观察压测状态需要等待30s的延时,这基本上是不能忍受的。因此Rhino平台支持了发压客户端维度的秒级监控,使用户可以及时观察压测状态,当压测出现异常时可以立即停止压测。

实现方案:

Rhino支持服务端角度的全链路监控,包括服务监控、机器资源监控、上下游监控。目前使用的是grafana面板展示,将全链路每个服务metrics、机器influxdb数据聚合展示到grafana中。未来将使用Argos展示服务端监控数据。

此外,Rhino平台还支持监控ms告警规则,当被测服务或下游服务触发了告警规则后,压测任务便自动停止,防止造成线上事故。

1.监控分析

可以从发压客户端监控、被测服务端监控发现异常,异常主要包括:

2.Lidar性能平台

3.系统层tracing分析

1.服务的CPU陡然升高,RPC调用和consul、etcd访问频繁超时,以及goroutine数目大涨。

THE END
1.搭建线上平台的方案范文(精选10篇)为了确保事情或工作有效开展,时常需要预先制定方案,方案是从目的、要求、方式、方法、进度等都部署具体、周密,并有很强可操作性的计划。那么问题来了,方案应该怎么写?下面是小编精心整理的搭建线上平台的方案范文(精选10篇),希望能够帮助到大家。 搭建线上平台的方案1 https://www.ruiwen.com/fangan/6698501.html
2.2023年小学线上教学工作方案(二)搭建平台,有效推进 20xx年9月,学校已指导各班组建班级钉钉群,作为本次线上授课的通用平台。教师利用钉钉群进行网络答疑与指导、课后作业的.科学布置、批阅。 同时推荐教育部“国家中小学智慧教育平台”等作为学生网络线上学习的主要资源,学校微网站的“空中课堂”、教师自主录制微课作为有效补充。 https://www.pinda.com/zhichang/gongzuofangan/131575.html
3.推荐5大知名线上课程平台,让你马上开课当老师(详细比较)谁适合 WordPress 在线教程平台搭建? 任何人都适合使用 WordPress 搭建自己的教程网站,特别是 想要扩展个人品牌的创作者,不用受到任何平台的权限限制,可以完全展现个人特色! 同时,也适用预算有限的族群,因为大部分线上教程平台所提供进阶功能,都只限定在昂贵的付费方案,并不是每一个进阶功能都适用自己的需求。 https://www.itaoda.cn/blog/9804.html
4.线上心理咨询平台怎么搭建心理咨询公司网站建设流程心理咨询心理网站的建设路径指南是一份指导心理网站建设的指南,它包含了从规划到实施的全过程,帮助网站开发者更好地搭建一个符合用户需求的心理网站。 1.规划是心理网站建设的*一步。在规划阶段,开发者需要明确网站的目标和定位。他们需要确定网站的受众群体,了解他们的需求和问题,并制定相应的解决方案。还需要考虑网站的内容https://www.wxavatar.com/xsxlzx.html
5.线上直播指南零成本搭建多平台线上直播间及虚拟背景墙最佳方案照例先上一波列表说一下今天主要讲啥。 零成本搭建线上直播间及虚拟背景墙 ? 多机位摄像头解决方案(无他相机) ? OBS添加虚拟相机实现多机位切换 ? 直播背景实时渲染 ? 各大直播平台推流码获取 ? OBS多平台同步推流 ? 后记:微信视频号端口布局 https://www.jianshu.com/p/400cb70da763
6.线上招商云平台解决方案解决方案概述 该招商云平台包括多个子系统:交易系统、CRM系统、营销系统、客服系统和财务系统。平台通过线上资源发布、资讯提供、预约带看、预定缴费、签约等功能模块,打造全流程数字化招商模式。同时,通过每日签到、会员中心、佣金政策、楼书分享、关注推荐等活动,实现用户增长;搭建对接开放平台,对接B端资产机构,实现资产https://www.king-v.com/services/7261.html
7.腾讯云发布在线素质职业教育解决方案搭建多嘲全平台线上除音乐、美术教学外,编程和Stem教学也是教育创业者热衷的赛道,针对这两个场景的线上化,腾讯云也发布了解决方案。在线编程教学场景,提供跨平台、跨设备、安全快捷的远程桌面共享和指令控制服务,支持随时随地的远程访问、远程协作和远程管理,并且支持Scratch、Python等在线代码编辑器和多人协作编程。Stem在线教学场景,支持PPThttps://cloud.tencent.com/developer/article/2416054
8.2024年O2O电商解决方案本地生活服务O2O平台搭建友数2024年全新版O2O平台系统,帮助门店轻松搭建O2O模式线上商城,实现线上线下一体化,快速实现本地生活服务O2O平台建设.https://www.yoshu.com.cn/o2oxitong/
9.电商农产品线上平台搭建及营销方案远丰在数字经济时代,农产品的线上销售已经成为推动农业现代化的重要途径。随着消费者对新鲜、优质农产品需求的增加,传统的销售模式面临着巨大的挑战。电商平台的搭建不仅能提高农产品的流通效率,还能直接连接生产者与消费者,增加农民收入。 远丰软件作为一家专业的电商解决方案提供商,致力于帮助农业企业搭建高效的农产品线上https://yuanfeng021.com/news-4492.html
10.平台运营服务方案9篇(全文)平台运营服务方案 第1篇 微信公众平台服务号运营三部曲 微信5.0上线后,公众账号分成了订阅号与服务号,不少人问:服务号在一个月只能群发一条消息前提下,该如何运营服务号才好? “微信5.0上线,公众号被分为订阅号和服务号,订阅号每天可群发一条消息,但是会被折叠;服务号每月只能群发一条消息,但是不会被折叠。Balahttps://www.99xueshu.com/w/fileu41swrqk.html
11.搭建ReactNative热更新平台的详细过程React六,线上方案 可以看到,不管是npm start 还是CDN方案,都存在一定的缺陷,那有什么比较完整的方案吗。其实仔细思考一下,只需要在CDN 方案解决延迟问题即可达到线上运行的需求,那如果改进CDN 方案呢。 解决方案就是多发一次版本请求:既然上千个节点 CDN 更新有延迟,那么就自己搭建一个版本服务,资源依旧上传 CDN,然后用https://www.jb51.net/article/249267.htm
12.平台搭建方案有几种呢?你尝试过哪些方法?以上就是平台搭建的方案,格子匠是专注在线教育解决方案的技术服务商。旗下拥有格子匠线上教学平台、格子电子书、格子商学院等产品和服务,致力于为中小型教育培训机构、企业、老师等有教学资源者提供平台、社群、运营等一站式在线教育技术解决方案。想体验格子匠在线教育系统的朋友可以在官网首页申请试用。 https://www.grazy.cn/article/14686.htm
13.通过数字化手段打造品牌引领的智家工程师形象IPA.4大线上平台:以智家线上IP作为交流节点,在抖音、微信、B站、小红书等平台搭建交流平台,坚持问题导向,深化全量问题综合解答,建立常态化业务交流体制。 B.1种交流机制:形成以智家团队为基础,以运营商同行为主力,以全量客户开放式参与为形式的交流平台,逐渐建立以每周的问题清单为常态化载体,以节点性直播为集中形式http://bjtxxh.cn/nd.jsp?id=137
14.线上小程序商城推广方案制作线上小程序商城推广方案开发覆盖全行业免费线上小程序商城推广方案 解决你制作线上小程序商城推广方案系统路上的巨大烦恼 ▽线上小程序商城推广方案系统制作平台能提供什么服务 既能定制线上小程序商城推广方案系统,也能自己搭建线上小程序商城推广方案系统 ▽不需要自己写代码 ▽全程简单拖动式操作 https://mall.fkw.com/blog/1129256
15.《以信息化手段推进新时代工会工作高质量发展》搭建职工学习成长“立交桥”。打造网上悦读平台,开放数字图书资源。在强化图书馆服务效能的同时,实施线上线下互动,购置全天候自助书柜,职工借书量达万余册次。采取线上定制预约方式,满足职工“心愿书单”近千册次。既拓展了职工多样化需求渠道,也培育了良好文化生态。 https://www.workercn.cn/c/2023-11-10/8044076.shtml
16.在线网校网校系统在线网校教育平台获得场景视频在线网校系统,零技术门槛搭建线上网校系统,提供标准及定制化网校系统,以及全方位在线网校解决方案,个性化构建独立品牌的在线招生与学习平台https://www.bokecc.com/class/433
17.鼎好云会展鼎好云会展是一套完整、集成、易用、性价比很高的在线智慧展览、会议管理软件,依托鼎好科技丰富的线上展会开发经验,可快速开发搭建,适合各种应用场景,成功案例丰富。线上线下融合办展就选鼎好云会展。http://expo.tophere.cn/
18.线上论文指导远程视频答辩:防疫毕业季各地高校这么做为“云答辩”搭建平台 陕西师范大学研究生院(研工部)积极借助远程网络视频技术,采取线上提交学位审查材料、线上审核和视频预答辩等方式,积极创新研究生论文答辩形式,保障学位申请各项程序有序进行,为学生高质量完成论文答辩搭建平台、提供便利。 04 学位授予工作如何安排? https://www.thepaper.cn/newsDetail_forward_6886454
19.消费扶贫的“浙商方案”:精准对接+搭建平台+直播带货消金界搭建平台,从“千山万水”向“近在咫尺”迭代 在做好线下定点收购的同时,浙商银行还积极思考如何推进“互联网+消费扶贫”,通过线上化销售模式和现代化配送体系,帮助农户跨过空间上的千山万水,转化为网络里的“近在咫尺”。 浙商银行在”e家银“商城上设立了”爱心专区“,推动扶贫开发和扶贫协作由”线下“转往”线上https://www.shangyexinzhi.com/article/2923876.html