性能压测报告

article/2025/8/23 0:42:58

文章目录

      • 业务接口性能压测报告
        • 一、说明
        • 二、调优
          • 1、slb
          • 2、内核
          • 3、nginx
          • 4、php
        • 三、盘古单节点压测数据
        • 四、盘古单代理节点压测数据
        • 五、集群压测数据
          • 1、每秒2000并发,总计5分钟压测数据
          • 2、每秒3000并发,总计5分钟压测数据
        • 六、结论
          • 1、说明
          • 2、结果
          • 3、瓶颈







业务接口性能压测报告

一、说明

本次压力测试主要是为了找出系统瓶颈,提高单台服务器及整个集群的吞吐量,并根据负载均衡SLB,系统(cpu、mem、io、network、进程及文件限制,内核参数),nginx服务,php服务等进行优化,分别对盘古的四个接口,并通过单节点,nginx代理节点及cluster多节点进行压力测试;并对产生的数据进行汇总(本次数据汇总均为调优后的压测结果)

至于为何使用两种测试工具,因为单台mac主机jmeter无法向集群发出更多请求,所以为了数据的真实性,使用阿里云付费性能压力测试方案。

类别说明
压测工具1、apache-jmeter-5.1.1(单台压测)
2、阿里云性能测试系统(集群压测)
压测接口/api-x/site/user/getUser
/api-x/site/box/currentBox
/api-x/site/user/getShippingAddressList
/api-x/site/user/getCredit
压测性能相关参数协议: https
方法: get
并发数
总请求数
吞吐率(TPS)
响应时间
错误率

二、调优

1、slb
类别参数说明
slb加权最小连接数wlc针对权重轮询,并考虑后端实际连接数负载再轮询
slbslb.s1.small -> slb.s2.medium最大连接(100,000),新建连接数(10,000),查询(10,000)/Sec

2、内核
类别参数说明
kernelvm.nr_hugepages=512内核大页内存
kernelnet.core.somaxconn = 65535端口最大监听队列长度
kernelnet.ipv4.tcp_max_syn_backlogSYN同步包的最大客户端数量
kernelnet.ipv4.tcp_tw_reuse = 1TCP连接重用
kernelnet.ipv4.tcp_tw_recycle = 1TCP连接TIME-WAIT sockets的快速回收
kernelnet.ipv4.tcp_fin_timeout = 30FIN-WAIT-2状态时间

3、nginx
类别参数说明
nginxtengine-2.3.0老版本2.1.2升级
nginxworker_connections 2048 * 4nginx的最大进程数
nginxkeepalive_timeout 90nginx与后端的长链接时间
nginxbacklog 2048nginx backlog

4、php
类别参数说明
php.iniopcache.huge_code_pages=1php opcache的内存分页特性
php.iniopcache.file_cache=/tmpphp opcache的文件缓存
php.inimemory_limit = 2048Mphp的最大内存
php-fpmlisten.backlog=2048php的backlog
php-fpmpm = staticphp进程的运行模式
php-fpmpm.max_children = 240php的最大运行进程数
php-fpmpm.max_requests = 2000php的最大请求数
php-fpmrlimit_files = 10240php的最大文件数


三、盘古单节点压测数据

压测域名均为 pangu 线上域名(host解析),直接压测盘古接口(user --> slb --> 盘古)

  • 压测工具:apache-jmeter-5.1.1
  • 压测系统:macOS MACOS 10.13.6 I7 4G SSD
  • 压测主机:site-f
  • 压测说明
    针对每个接口分别执行并发数及总样本数(800,80000)(900,90000)(1000,100000)进行压力测试,并对产生的每秒TPS,响应时间(min,ave,max)及错误率进行统计
  • 压测结果:单节点可承受每秒1k并发
    在这里插入图片描述

四、盘古单代理节点压测数据

压测域名均为 wwwx线上域名(host解析),通过site端进行反向代理到盘古端进行压测,较盘古单节点压力测试多一层SLB反向代理(user --> slb --> site --> slb --> 盘古)

  • 压测工具:apache-jmeter-5.1.1
  • 压测系统:macOS MACOS 10.13.6 I7 4G SSD
  • 压测主机:site-f
  • 压测说明
    针对每个接口分别执行并发数及总样本数(800,80000)(900,90000)(1000,100000)进行压力测试,并对产生的每秒TPS,响应时间(min,ave,max)及错误率进行统计
  • 压测结果:单节点可承受每秒1k并发

在这里插入图片描述


五、集群压测数据

通过对整个集群两台slb、六台服务器(分别部署site及盘古项目)进行压力测试
user --> slb --> site节点轮询 --> slb --> 盘古节点轮询

说明

  • 压测工具:阿里云性能测试系统
  • 压测系统:无
  • 压测主机:盘古集群
  • 压测接口:/api-x/site/user/getUser
1、每秒2000并发,总计5分钟压测数据

2000并发下的系统cpu使用率
在这里插入图片描述

2000并发下的每台nginx并发连接数
在这里插入图片描述

2000并发下的阿里云压力测试数据汇总
在这里插入图片描述

每秒2000并发的压测数据分析:

异常原因:由于响应时间为10s,所以超过10s的均为错误,异常率为0.8%

类别说明
接口/api-x/site/user/getUser
响应超时10s
吞吐率749.57
并发数2000
总样本数224870
成功率99.89%(224633/227)
异常数237
异常率0.11%


2、每秒3000并发,总计5分钟压测数据

3000并发下的系统cpu使用率
在这里插入图片描述

3000并发下的每台nginx并发连接数
在这里插入图片描述

3000并发下的阿里云压力测试数据汇总
在这里插入图片描述

每秒3000并发的压测数据分析:

异常原因:由于响应时间为10s,所以超过10s的均为错误,异常率为0.8%

类别说明
接口/api-x/site/user/getUser
响应时间2.8s
响应超时10s
吞吐率764.93
并发数3000
总样本数229449
成功率99.20%(227613/1863)
异常数1864
异常率0.8%

六、结论

1、说明

本次压测对index.html、index.php及多个项目接口的单机、代理、多层代理及集群等多种场景的内外网环境进行了压测,由于index页面和内网环境在某些情况下只是理论数据,所以没有进行统计,只是粗略的进行了nginx、php本身的最大负载压测;并对slb、系统内核参数、进程文件限制数、nginx、php等均进行了调优,覆盖了七层,四层场景,排除了潜在的影响系统性能的因素。


2、结果
  • 单台服务器实现并发1000
  • 集群可承载3000并发
  • 业务处理提升7%

3、瓶颈

对于单主机节点压测,并发达到800、900、1000的时候,接口平均响应时间都在5s及以上;并且qps略低

  • /api-x/site/user/getUser:143
  • /api-x/site/box/currentBox:100
  • /api-x/site/user/getShippingAddressList:200
  • /api-x/site/user/getCredit:220

getUser接口当并发达到3000的时候,集群压力会达到瓶颈

  • 后端少部分接口响应时间大于10s,平均响应时间3s(响应时间取决于接口每秒的吞吐量)
  • php 慢日志(暴露出很多大于1s的满日志)
  • rds 数据库连接数会达到上限(readonly-db3)

http://chatgpt.dhexx.cn/article/N3FoL8bj.shtml

相关文章

压力测试相关概念与性能指标以及压测实例

压力测试 压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都 是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。 使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。有两种错误类…

系统压力测试(一)

《目录》 -------->认知,了解压测的一些参数,了解什么是正向的压测结果 -------->压测需求一般包含的东西与及步骤 -------->JMeter压测软件的介绍,压测计划中常用模块的用途 -------->了解怎么给出压测人员出一份压测指标&a…

压力测试报告

找XX二代--江苏对接功能点压力测试报告 一、测试目的 对找XX二代一些基本功能进行自动化测试代替人工测试,提高测试效率。 二、测试环境 本次压力测试使用了jmeter4.0测试工具,找XX二代设备1台; 软件版本:CMCC-DST1A-0-2_V2.2.X_2…

项目如何进行压力测试?

前言:这里对压测进行一些简介,本篇介绍项目压测场景,使用jmeter进行压测。 压测相关的一些指标: QPS(Queries Per Second):每秒能够响应的查询次数,也即是最大吞吐能力&#xff08…

压力测试基本概念

目录 一、压测是个啥?为啥要压测? 二、压测方案设计 1、压力场景 2、压测方案设计关注点 3、涉及到的知识点: 三、压测执行 四、压测报告关注点 一、压测是个啥?为啥要压测? 压测属于性能测试的一种&#xff1a…

jmeter压力测试报告—模板

XXX压力测试报告 时间:2018-09-05 测试人员:xxx XXX压力测试报告 目录 一 测试内容... 2 二 测试方法... 2 三 测试目标... 2 四 测试环境... 2 五 系统部署... 3 5.1 物理部署... 3 5.2 网络…

软件测试之压力测试

压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试,并评估软件在极端…

模拟压力测试报告

在Linux环境下测试一下数据库以及缓存在优化前后的负载情况,总结一下过程。 压测工具:JMETE 运行环境 本来想在虚拟机上运行java程序以及数据库,不过压测下虚拟机承载不了太高的并发,硬件有限,只能将java应用运行在W…

JMeter压力测试报告分析

JMeter 一、测试工具:二、JMeter介绍:三、Java环境的安装与使用:3.1.初始化3.1.1.下载并安装,3.1.2.解压,3.1.3.进入bin目录,3.1.4.cmd启动jmeter.bat,3.1.5.出现两个窗口:一个cmd窗…

Redis压力测试报告

Redis配置 Max_total 200 Max_idle 100 Max_wait 10 Time_out 3000 测试机器(本机)参数 CPU 2核 内存 4G 网络 100Mbs 1.不同操作压力测试结果 结论: 1.针对redis的不同操作,在相同线程数下TPS基本保持一致&#x…

自动化测试工程师需要具备什么技能?

如果是初入门的学习者,不建议拿一本书从头学,很可能会被里边一些专业术语和不常用的技术带偏,不论在公司还是在其他岗位上自学测试,都可以用自己搭建好的项目来练手(如果在公司有现成的项目更好)&#xff0…

面了一个测试工程师要求月薪26K,总感觉他背了很多面试题...

最近有朋友去华为面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

一名优秀的测试工程师,应具备那些能力

前言 作为一个软件测试工程师,你找工作的敲门砖是什么?是学历?是经验?还是年龄?   从事测试工程师的人员日趋增多,自然而然竞争也会变得激烈。如何让我们的工作履历变的更加精彩,除了我们实际…

什么是测试开发工程师?

什么是测试开发工程师? 测试开发工程师 (Software Development Engineer in Test,简称SDET)是指那些既可以称作是开发人员,同时也负责软件开发阶段和测试周期的测试工作的技术人员。一个专业的SDET更关注软件产品的可测性,稳健性和…

测试工程师应具备的素质

郭芙曾提到测试的软实力包括测试人员的基本素质,那么测试人员到底应具备怎样的素质呢?昨天逛书城,看到一本教科书上有对测试人员应具备的素质的描述,所述未必尽如其然,但仍有可借鉴之处,手机拍了下&#xf…

成为一个优秀的测试工程师需要具备哪些知识和经验?

先说下做软件测试所必须掌握的技能范围 我按照薪资的不同大致划分成3个档位: 月薪5-9k:从零基础入门到能够找到工作月薪15-25k:测试在职搞定性能测试和自动化测试年薪30W:搞定测试开发,进入一线大厂 第一个阶段&…

软件测试工程师有哪些要求

软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙手可热的高薪职位。中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。由于软…

测试工程师到底需要具备哪些能力?

测试工程师到底需要具备哪些能力? 小编最近看了许多测试论坛,上面有许多测试框架或者分享的测试技术,每个分享的内容涉及到的面都很宽,技术的不断革新,有些技术沉淀下来了,有些技术被业界抛弃,…

测试工程师

1 测试理论 1.1 测试理论基础 1.1.1 软件研发流程 软件生命周期: 需求-设计-编码-测试-维护-废弃 **软件测试流程:**需求分析-测试计划-测试方案-测试用例-测试执行-测试报告 需求分析:分析产品功能点;产品核心竞争力&#xf…

一名优秀的测试工程师需要具备哪些技能?

文章目录 js/css 前端技术网络架构网络协议DNS解析负载均衡策略Linux 系统基本操作数据库知识 js/css 前端技术 很多测试工作都由前端发起,所以了解前端技术可以让测试人员使用更灵活的方式执行测试 任务。如何利用前端技术辅助测试人员更好…