25 | 如何在生产环境中进行真实的容量测试?
该思维导图由 AI 生成,仅供参考
为什么需要在生产环境中进行容量测试?
- 深入了解
- 翻译
- 解释
- 总结
LinkedIn的文章《如何在真实生产环境中进行容量测试?》介绍了在线互联网服务容量性能评估的重要性和挑战,以及他们采用的解决方案RedLiner。文章强调了在生产环境中进行容量测试的必要性,因为非生产环境的测试结果可能不准确,而生产环境中的测试又面临着重定向流量可能影响真实客户的挑战。为了解决这些挑战,LinkedIn提出了RedLiner解决方案,包括核心控制器LiveRedliner、重定向流量的TrafficRedirector、收集性能数据的PerfCollector和分析性能数据的PerfAnalyzer。RedLiner通过动态地调整线上流量,直到让被测系统临近超载状态,从而获得准确的单位服务容量。文章详细介绍了RedLiner的具体操作流程,包括初始重定向数量的决定、总体测试时间的确定以及调整重定向百分比的步距等。通过该解决方案,读者可以了解到在生产环境中进行容量测试的重要性以及LinkedIn的实践经验,为在线服务容量性能评估提供了实用方法和重要参考。文章还分享了LinkedIn在生产环境中运行RedLiner的实际数据,展示了系统的特点和测试过程,为读者提供了直观的感受和实际案例。文章最后提出了思考题,鼓励读者思考自己公司的容量测试解决方案,并分享讨论。
《性能工程高手课》,新⼈⾸单¥59
全部留言(9)
- 最新
- 精选
- 许童童有个问题,生产环境流量不多或者根本就没有流量,这个时候怎么办呢?
作者回复: 如果说实际生产流量不够驱动一个SUT,这种情况就只能用模拟流量了(比如人工产生流量去驱动)。
2020-01-222 - 黄海峰“模仿实现一个一点也不难”。。。我被高估了,后面加餐希望多点技术细节介绍
作者回复: :)。这个具体实现要根据实际的系统,因系统而异。关键是搞清楚负载均衡(就是来了一个流量,让哪个服务器处理),然后修改均衡机制(就是让它“不均衡”)。要小心别弄砸,因为负载均衡很关键,而且最好自动化。
2020-01-221 - lewis99你好,有个疑问:服务中有不同的接口,每个接口性能是不一样的,那是要针对每个接口进行容量规划和流控吗?
作者回复: 我的建议是看实际生产环境中的使用情况,并且根据使用的接口,以及使用数量的分布来进行响应的规划。
2020-03-29 - 钱看评论回答是直接引流而非复制,有几个问题? 1:为什么不复制流量呢? 2:线上直接引流,线上的流量有峰谷之分,是否只针对峰流来测试? 3:流量不够,人工模拟,针对这种流量还需要拦截,不让响应吧?这个怎么做的?此时数据也会失真嘛? 4:如果针对淘宝或京东,这种大促时的流量评估,因为是发生在未来的,这种直接引流的方式,流量应该是不足的,这种怎么来弄?还是人工模拟吧? 😁 我们主要是各条线线下性能压测+全链路线上憋单压测两者结合。
作者回复: 问题较多,我尽量回答: 1. 复制的话,很难准确复制。比如写入数据库的流量,复制很难做。 2. 这个到无所谓,只要能让被测系统Stress就行。 3. 不是不让响应,只是重定向。 4. 要点是得到单位容量的能力,有了这个,再加上整体流量预测,就知道所需容量了。
2020-03-11 - 海华(海菜)zhenyun老师,有几个细节问题: 1. 重定向流量是克隆流量还是直接也响应生产请求,响应生产请求意味着这个系统也是生产一部分 2. SUT应该是固定的容量例如N,如果迁移M%的流量过去导致容量达到预警/瓶颈,就意味着线上容量需求是 N / (M/100)(例如SUT容量是5个服务单位,迁移5%流量导致,意味着线上应该用5/0.05 = 100)是吗? 感谢
作者回复: 1.是直接的生产请求,不是克隆浏览。 2.理解是对的。
2020-02-15 - 徐豪这一块国内一般称之为『全链路压测』,我也设计主导过,采用的基于日志的流量回放方式2020-04-282
- 争光 Alan测试单机性能估算总的资源和性能关系也有疑惑 单机和分布式系统还是差异比较大的,从单机扩到两台的时候就会有比如分布式锁,某个服务特别忙,数据库扩后跟不上等等,感觉从单点轮到1k差异会更大 这一块一般是怎么处理?2023-02-01归属地:上海
- 争光 Alan真实流量感觉差异会比较大,比如活动,热点事件,都会导致某个特定场景的请求链路流量方大,这一块怎么把控测试结果就能支撑目标qps呢? 还有个疑惑:比如我要做个活动,预计100kqps,线上感觉搞不到数据(活动还没开始)2023-02-01归属地:上海
- 争光 Alan如果这么压测的话,比如测试结果很差,怎么分析原因呢2023-02-01归属地:上海