Open sdcuike opened 4 years ago
美团点评酒店后台故障演练系统 故障演练概述 如何做好一次故障演练?
【为什么是Tsung?】 Tsung是一个有着超过15年历史积累的性能压测工具,本身受益于Erlang天生支持并发和分布式以及实时性的特性,其进程的创建和运行非常廉价,一台机器上轻轻松松创建上百万个进程。其提供一个用户对应一个进程的隔离处理机制,单机支持虚拟用户的用户数量可支持若十万、百万级别,只要机器资源充足(但总体来讲受制于受制于网络、内存等资源,后面会具体解释)。单机计算能力总是有限的,Tsung的目的就是要把多台服务器横向扩展成分布式集群,从而可以对外提供一致的海量性能压力测试服务。
我们最终选择基于 Gatling 做二次开发 Maxim 在 Gatling 基础上开发了很多新特性: 支持分布式 一个控制中心(Control Center,负责调度) + 多个压力注入器(指施压机) 提供 GUI,并对用户隐藏压测过程的复杂性 高效地创建、运行(手动/定期)测试任务 管理测试资源 测试资源包括压测脚本、数据集(为压测请求提供测试数据,由数据块构成的一个集合,数据块是大> 量测试数据的最小分割单元)、压力注入器 支持压测脚本参数化 Maxim 中并发用户数、RPS、持续时间等都可以通过 GUI 动态注入压测脚本 支持压力注入器系统状态监控 实时监控压力注入器的 CPU、内存、I/O 等指标 自动生成压测报告,保留历史压测报告 采集多个压力注入器的压测日志,自动汇总生成压测报告,并保留历史压测报告
我们最终选择基于 Gatling 做二次开发
Maxim 在 Gatling 基础上开发了很多新特性:
支持分布式 一个控制中心(Control Center,负责调度) + 多个压力注入器(指施压机)
提供 GUI,并对用户隐藏压测过程的复杂性 高效地创建、运行(手动/定期)测试任务
管理测试资源 测试资源包括压测脚本、数据集(为压测请求提供测试数据,由数据块构成的一个集合,数据块是大> 量测试数据的最小分割单元)、压力注入器
支持压测脚本参数化 Maxim 中并发用户数、RPS、持续时间等都可以通过 GUI 动态注入压测脚本
支持压力注入器系统状态监控 实时监控压力注入器的 CPU、内存、I/O 等指标
自动生成压测报告,保留历史压测报告 采集多个压力注入器的压测日志,自动汇总生成压测报告,并保留历史压测报告
https://github.com/shulieTech/Takin
工具
配合流量录制
美团点评酒店后台故障演练系统 故障演练概述 如何做好一次故障演练?
压测
新浪微博百万用户分布式压测实践手记
有赞全链路压测引擎的设计与实现
https://gatling.io
https://github.com/asura-pro/pea
https://github.com/locustio/locust
https://github.com/shulieTech/Takin
系统稳定性保障核武器——全链路压测
nGrinder详细介绍及性能工具对比
http://jm.taobao.org/2019/04/01/好玩又实用,阿里巴巴开源混沌工程工具-ChaosBlade/
https://github.com/chaosblade-io/chaosblade