Kubernetes下web服务的性能测试三部曲之二:纵向扩容

简介: 在前文单实例的基础上,对服务做横向扩容,再用Jemeter验证扩容效果

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

本篇概览

实战步骤

  • 今天的实战用以下几种方式提升单个Pod性能:
  1. 内存资源从256M提升到512M;
  2. 内存资源从512M提升到1G;
  3. 内存资源从1G提升到2G;
  4. CPU资源从0.1提升到1;
  5. CPU资源从1提升到2;

注意:每次纵向扩容之前,需要停止和删除原有的deployment和service,扩容后,第一次测试的成绩请丢弃,因为JIT在理论上对结果有影响;

如何停止和删除原有的deployment和service

  • 执行以下命令即可先删除service,再删除deployment:
kubectl delete service tomcathost && kubectl delete deployment tomcathost

内存资源从256M提升到512M

  • 打开上一章我们搭建web服务时创建的tomcat.yaml文件,内容如下:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcathost
spec:
  replicas: 1
  template:
    metadata:
     labels:
       name: tomcathost
    spec:
     containers:
     - name: tomcathost
       image: bolingcavalry/k8stomcatdemo:0.0.5
       tty: true
       ports:
       - containerPort: 8080
       resources:
         requests:
           memory: "256Mi"
           cpu: "100m"
         limits:
           memory: "256Mi"
           cpu: "100m"
  • 如上所示,找到resources节点下的两个memory节点,将值从"256Mi"改成"512Mi";
  • 执行AB测试:
ab -n 20000 -c 100 http://192.168.119.153:30008/getserverinfo
  • 得到的结果如下:
Concurrency Level:      100
Time taken for tests:   68.527 seconds
Complete requests:      20000
Failed requests:        0
Total transferred:      3700000 bytes
HTML transferred:       1040000 bytes
Requests per second:    291.86 [#/sec] (mean)
Time per request:       342.635 [ms] (mean)
Time per request:       3.426 [ms] (mean, across all concurrent requests)
Transfer rate:          52.73 [Kbytes/sec] received
  • 接下来用JMeter压测,得到结果如下:
# Samples Average Median 90% Line 95% Line 99% Line Min Max Error % Throughput Received KB/sec Sent KB/sec
20000 489 294 1100 1608 3696 0 10899 0.00% 188.8/sec 30.61 25.45
  • 如上所示,内存翻倍后对吞吐量的提升非常明显;

继续提升内存

  • 继续修改tomcat.yaml的内存参数,记录下来每次AB和JMeter的测试结果,这里就不赘述了,稍后在表格中统一给出;

升级CPU

  • 继续修改tomcat.yaml,将内存恢复为256Mi,将CPU从100m改成1000m,也就是从0.1CPU改为1CPU,然后再从1CPU改为2CPU,分别记录下来每次AB和JMeter的测试结果;

小结纵向扩容

  • 下面的表格将前面每次修改后的测试结果列举出来了:
内存 CPU 吞吐率(AB) 吞吐率(JMeter)
256M 0.1 33.77 31.21
512M 0.1 291.86 188.80
1G 0.1 326.19 324.58
2G 0.1 340.61 340.10
256M 1 81.36 80.61
256M 2 86.62 82.11
  • 从上述数据可以看出:
  1. 内存扩容在1G之前是有显著提升的,但过了1G提升就不明显了;
  2. CPU资源增大到原有的10倍后,吞吐量有3倍左右提升,继续加倍CPU资源,也无法带来明显提升;
  • 这里要注意的是此次测试的后台代码很简单,并未涉及RPC、数据库、缓存等,数值不能作为生产环境的参考,因为每个实际的业务都有其自身的特征,此处仅提出一种扩容和验证扩容效果的手段;
  • 至此,纵向扩容的测试就完成了,接下来的章节,咱们一起测试一下横向扩容的效果;

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Java 测试技术 网络安全
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
120 0
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
|
2月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.10 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.10 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
262 3
|
3月前
|
安全 NoSQL Shell
web渗透-SSRF漏洞及discuz论坛网站测试
SSRF(服务器端请求伪造)是一种安全漏洞,攻击者可诱使服务端发起任意请求,进而探测或攻击内网系统。常用于端口扫描、访问内部服务、读取本地文件等。常见防御包括限制协议、域名和IP,但可通过302跳转、短地址等方式绕过。
239 1
web渗透-SSRF漏洞及discuz论坛网站测试
|
7月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
316 3
|
安全 JavaScript 前端开发
AppSpider 7.5.020 发布 - Web 应用程序安全测试
AppSpider 7.5.020 for Windows - Web 应用程序安全测试
92 0
|
3月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.9 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
379 0
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
|
5月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
522 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
7月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
377 4
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
|
8月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
978 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!

推荐镜像

更多