天天看点

在阿里云容器服务上创建Spring Boot应用之压测篇

  spring boot框架的第一个稳定版本是在2014年由pivotal发布的,该框架的宗旨在于为基于spring的web应用提供快速设计开发,并追求小而美、约定胜于配置、快速开发、自包含且便捷。spring boot当前开发中的版本是1.4。

  上一篇文章“在阿里云容器服务上创建第一个spring boot应用”,讲述了如何通过maven的docker plugin上传镜像到阿里云的容器hub,并通过阿里云的容器服务快速在云环境创建应用。本文将描述下,如果在阿里云环境里继续对这个web应用进行压测,下面我会按照4个步骤进行介绍:

第一步:评估应用的架构

第二步:评估压测的架构

第三步:配置压测任务

第四步:查看压测结果

  上一篇我们通过阿里云容器服务给这个sping boot服务配置了一条路由规则:

容器端口为8080,域名前缀为spring-boot。容器服务会自动生成一个测试域名‘spring-boot.<cluster_id>.<region_id>.alicontainer.com’

  当一个request请求这个域名时会经过以下几次转发:

这个域名的dns指向集群的负载均衡slb的ip。

slb会监听80端口的请求并转发到集群内的每台云服务器的80端口。

而每台云服务器里面有一个系统的容器acs-routing,会负责将服务器的80端口上指定域名的请求转发到指定容器的内部8080端口。

以下是应用的架构简图:

在阿里云容器服务上创建Spring Boot应用之压测篇

我们回到容器服务的控制台记录下几个信息,后续会再用到:

应用的域名:(应用列表->服务列表tab->服务详情的访问端点 http://spring-boot.cfe5de77bd7a4474c826e8465930fae75.cn-shenzhen.alicontainer.com)

在阿里云容器服务上创建Spring Boot应用之压测篇

集群的负载均衡slb:(集群列表->更多操作->负载均衡管理->负载均衡详情的id 1529d3bd5cd-cn-shenzhen-st3-a01)

在阿里云容器服务上创建Spring Boot应用之压测篇

集群的云服务器名称列表:(集群列表->集群名称的链接展开)

在阿里云容器服务上创建Spring Boot应用之压测篇

首先我们需要对spring boot的用户访问场景进行评估,经过拍脑袋之后,我们决定以10个并发对首页进行压测,看看能否抗的住,主要观察几个指标:首页的tps、rt,服务器的cpu、load。最常见的方式就是搞一个httpload、jmeter压压,幸运的发现阿里云已经提供了类似的能力。我们决定通过“云监控”和“性能压测”两个产品来试试。

以下是压测的架构简图:

在阿里云容器服务上创建Spring Boot应用之压测篇

压测方案分为两部分:

通过云监控采集服务器的监控数据(免费开通云监控->云服务监控->ecs监控列表->筛选第一步中的2台服务器,“点击安装”ecs插件)

在阿里云容器服务上创建Spring Boot应用之压测篇

在性能测试产品里绑定压测的ecs和slb(免费开通性能测试企业版->测试环境->云内机器)

在阿里云容器服务上创建Spring Boot应用之压测篇
在阿里云容器服务上创建Spring Boot应用之压测篇

下面开始配置压测任务

在阿里云容器服务上创建Spring Boot应用之压测篇

点击上图的新增脚本

在阿里云容器服务上创建Spring Boot应用之压测篇

设置脚本名:perf-springboot

添加一个事务:事务名称(testperf),请求链接(http://spring-boot.cfe5de77bd7a4474c826e8465930fae75.cn-shenzhen.alicontainer.com/),请求类型(get)

点击保存

选择脚本名

在阿里云容器服务上创建Spring Boot应用之压测篇

设置场景名:perf-springboot

设置并发用户数:10

在阿里云容器服务上创建Spring Boot应用之压测篇
在阿里云容器服务上创建Spring Boot应用之压测篇

点击新增任务

设置任务名:perf-springboot

设置持续时间:10分钟

设置施压集群:深圳

选择监控机:绑定之前深圳集群的两台机器

绑定场景:绑定上一步的测试场景

在阿里云容器服务上创建Spring Boot应用之压测篇
在阿里云容器服务上创建Spring Boot应用之压测篇

点击确认

在阿里云容器服务上创建Spring Boot应用之压测篇

点击执行

在阿里云容器服务上创建Spring Boot应用之压测篇

休息10分钟回来~

查看压测结果

在阿里云容器服务上创建Spring Boot应用之压测篇

查看tps数据

在阿里云容器服务上创建Spring Boot应用之压测篇

查看rt数据

在阿里云容器服务上创建Spring Boot应用之压测篇

查看服务器的cpu数据

在阿里云容器服务上创建Spring Boot应用之压测篇