
(可用于测试AWS ELB、EC2、Auto Scaling、HA)

一群勤劳的小蜜蜂
很多时候我们需要进行负载均衡、Web服务器的并发式压力测试,但像Siege, JMeter等工具都是从一个源IP地址发送流量,这不能很好的模拟出对负载均衡的实际压测效果。这里将详细介绍如何快速部署一个分布式压测工具Bees with Machine Guns,模拟一组不同的IP(可自定义)地址进行压测,这可更加准确的模式实际生产场景。
(注:请合理、正确使用此工具,核对你要压测的目标,避免造成不必要的“攻击”行为。)
接下去将手把手教你如何快速搭建一组分布式的“勤劳的小蜜蜂”。
1. 启动Ubuntu EC2(Amazon Linux机器也支持)

启动成功

2. 连接启动完成的实例,例如
ssh -i “ubuntu-instance.pem” [](mailto:ubuntu@ec2-54-201-96-220.us-west-2.compute.amazonaws.com)

3. 运行sudo apt-get install python-paramiko git

4. 进入到/tmp目录,然后下载bees源码,进入到bees目录,通过python安装。
ubuntu@ip-10-200-1-230:~$ cd /tmp
ubuntu@ip-10-200-1-230:/tmp$ git clone git://github.com/newsapps/beeswithmachineguns.git
ubuntu@ip-10-200-1-230:/tmp$ cd beeswithmachineguns
ubuntu@ip-10-200-1-230:/tmp/beeswithmachineguns$ sudo python setup.py install
5. 进入到/home/ubuntu/目录,创建.boto文件
/home/ubuntu/
vim .boto
接着,然后输入credentials相关内容
[Credentials]
aws_access_key_id=AKIAJOSWXXXXXXXXXX
aws_secret_access_key=RI2h19QXXXXXXXXXXXXXXXXXXXXXXXX
[Boto]
ec2_region_name=us-west-2
ec2_region_endpoint=us-west-2.ec2.amazonaws.com
\#elb_region_name=us-west-2
\#elb_region_endpoint=elasticloadbalancing.us-west-2.amazonaws.com
6. 进入/home/ubuntu/.ssh/目录,上传EC2实例的pem文件。
cd /home/ubuntu/.ssh/ (注意,这个地方一定要确保进入.ssh目录下。如果没有成功,请再次确认自己所在路径)

7. 执行启动“压测”的EC2机器
(1)简单执行:-s代表启动几台a bee!机器,-k代表秘钥的名称(注意,代码中已经带了后缀,所以这里只需要输入名称)
bees up -s 4 -k Internal-Amazon-Linux
(2)带参数执行(推荐使用):
bees up -s 4 -k Internal-Amazon-Linux -z us-west-2a -g HTTP -l ubuntu -i ami-113af271 -t t2.micro
执行结果:会发现启动了4台名称为a bee!的EC2机器。
ubuntu@ip-10-200-1-230:~/.ssh$ bees up -s 4 -k Internal-Amazon-Linux -z us-west-2a -g HTTP -l ubuntu -i ami-113af271 -t t2.microConnecting to the hive.
GroupId found: HTTP
Placement: us-west-2a
Attempting to call up 4 bees.
Waiting for bees to load their machine guns…
.
Bee i-0c8ddc14 is ready for the attack.
Bee i-0d8ddc15 is ready for the attack.
Bee i-0e8ddc16 is ready for the attack.
Bee i-0f8ddc17 is ready for the attack.
The swarm has assembled 4 bees.

看到这里说明4台EC2实例都已经正常启动了!

8. 可以看一下目前启动的report
ubuntu@ip-10-200-1-230:~$ bees report

9. 开始“压测”,这里假设压测ELB
bees attack -n 100 -c 4 -k Internal-Amazon-Linux -u http://mylabelb-XXXXXX.us-west-x.elb.amazonaws.com/

**这个时候发现报错!**
这里注意,需登到bee机器,然后在a bee!机器上安装apache2-utils
ubuntu@ip-172-31-29-100:~$ sudo apt-get install apache2-utils
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
libapr1 libaprutil1
The following NEW packages will be installed:
apache2-utils libapr1 libaprutil1
0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded.
Need to get 244 kB of archives.
After this operation, 877 kB of additional disk space will be used.
Do you want to continue? [Y/n] y

等到所有的a bee!机器都安装完apache2-utials之后,回到bee control机器,再次运行。成功!

此时再通过CloudWatch监控查看ELB请求总数的情况,发现变了。

说明:这里进行了两次压测,所以会看到监控中两段不同的曲线。
10. 停止“压测” 命令
bees down
此时所有的EC2都会马上处于Terminated状态
附: 源码参考https://github.com/newsapps/beeswithmachineguns
**作者介绍:**

毛郸榕
亚马逊AWS中国助理解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,毕业于北京航空航天大学云 计算专业,硕士,毕业后直接加入亚马逊AWS中国。在大规模后台架构、企业混合IT和自动化运维等方面有着丰富的实践经验。目前在集中精力学习新一代无服务器架构设计。
复制代码
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/bees-with-machine-guns/
划线
评论
复制
更多内容推荐
结果测试 & 结束语
2020-05-28
结课测试题|这些晋升的知识,你都掌握了吗?
《大厂晋升指南》课程结课了,来做一个小测试吧!
2021-02-26
谈谈测试
说起测试,相信每个软件团队的人都同意其非常重要,但是在实际的软件开发过程中,我们却发现真正理解测试、做好测试的团队却不多。深究其原因,不是不想做,而是对于测试的认知出现了偏差,导致实际执行往往花了很大的精力,却吃力不讨好。测试成了大家口中的
2020-09-30
架构师训练营 - 第 7 周命题作业
1.性能压力测试的时候,随着并发压力的增大,系统响应时间和吞吐量如何变化,为什么
2020-08-15
132 |【实验】NodeExporter 系统监控实验
无
2018-11-09
长路漫漫踏歌而行:蚂蚁金服 Service Mesh 实践探索
2018-12-19
结课测试 & 结束语
2019-09-27
探索智能化测试技术
随着软件迭代模式的不断发展,测试环节的自动化程度也得到了有效的、持续的提升,智能化测试是结合AI算法和测试数据对测试多个环节进行针对性的优化。
2022-10-18
39|GitOps 最佳实践,ArgoCD 凭什么脱颖而出?
ArgoCD 能在众多 CD 工具中脱颖而出,除了 GitOps 大背景的推动以外,其自身也具备非常多优秀的特性。
2023-03-08
华为云弹性云服务器 ECS,助力企业业务持续稳定运行
互联网公司:每次公司网站开发测试的时候都会担心服务器出问题,数据丢失的意外,真让人头疼。
2023-01-02
发现更多内容
推荐阅读
浅谈自动化测试
2021-03-16
测试架构需要具备哪些能力
2022-10-27
结课测试 | 一套习题,测出你的掌握程度
2021-05-05
Introduction Schema-based 实现 - <aop:declare-parents/>
2021-03-25
软件测试 | 什么是测试用例
2023-02-09
结课测试 | “即时消息技术剖析与实战”100 分试卷等你来挑战!
2020-04-23
GPT-4 可以开始测试了
2023-03-28
电子书

大厂实战PPT下载
换一换 
微服务架构和质量评估的前沿探索
李晓洲 博士 | 芬兰奥卢大学 博士后研究员
立即下载
推荐系统在腾讯游戏运营中的实践
王佳强 | 腾讯 IEG/专家工程师
立即下载
高德前端基建是如何炼成的
黄金金(青夜) | 高德地图 信息业务中心前端架构师
立即下载
评论