谷粒商城十二性能压测

news2024/11/15 14:01:26

在分布式开发中,我们将每一一种服务都抽取成一个独立的模块,微服务模块在真正的上线之前,甚至是上线以后,我们都要进行压力测试,才能投入正常的使用。

压力测试是为了我们的系统在当前软硬件环境下,最大的负荷量,也就是系统瓶颈。

知道了系统瓶颈,就可以通过一些负载均衡配置,避免给系统在单位时间内发送太多的请求,导致系统被压垮,以至于宕机。

同时压测也是我们优化的一个重要手段,使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。有两种错误类型是:内存泄漏,并发与同步

  • 内存泄漏:调用的接口在一个很多次的循环内不断的创建对象,当并发达到百万的时候,就会创建很多对象,以至于内存撑爆

性能指标

  1. 响应时间(Response Time: RT)
    响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。

  2. HPS(Hits Per Second) :每秒点击次数,单位是次/秒。

  3. TPS(Transaction per Second):系统每秒处理交易数,单位是笔/秒。
    可以理解为一个事务,不仅仅是数据库的事务,例如下单需要库存、购物车、计算价格等等,全部完成,则为一个事务。

  4. QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。
    对于互联网业务中,如果某些业务有且仅有一个请求连接,那么 TPS=QPS=HPS,一般情况下用 TPS 来衡量整个业务流程,用 QPS 来衡量接口查询次数,用 HPS 来表示对服务器单击请求。

无论 TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,根据经验,一般情况下:

  • 金融行业:1000TPS~50000TPS,不包括互联网化的活动(秒杀)
    保险行业:100TPS~100000TPS,不包括互联网化的活动
    制造行业:10TPS~5000TPS
    互联网电子商务:10000TPS~1000000TPS
    互联网中型网站:1000TPS~50000TPS
    互联网小型网站:500TPS~10000TPS

最大响应时间(Max Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最大时间。
最少响应时间(Mininum ResponseTime) 指用户发出请求或者指令到系统做出反应(响应)的最少时间。
90%响应时间(90% Response Time) 是指所有用户的响应时间进行排序,第 90%的响应时间。

从外部看,性能测试主要关注如下三个指标

  • 吞吐量:每秒钟系统能够处理的请求数、任务数(QPS、TPS)。
    响应时间:服务处理一个请求或一个任务的耗时。
    错误率:一批请求中结果出错的请求所占比例。

jmeter

官网下载二进制文件

线程组

在这里插入图片描述

JMeter Address Already in use 错误解决

windows 本身提供的端口访问机制的问题。
Windows 提供给 TCP/IP 链接的端口为 1024-5000,并且要四分钟来循环回收他们。就导致我们在短时间内跑大量的请求时将端口占满了。

  1. cmd 中,用 regedit 命令打开注册表
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 下,
    1. 右击 parameters,添加一个新的 DWORD,名字为 MaxUserPort
    2. 然后双击 MaxUserPort,输入数值数据为 65534,基数选择十进制(如果是分布式运行的话,控制机器和负载机器都需要这样操作哦)
    3. TCPTimedWaitDelay:30(操作和2一样)
  3. 修改配置完毕之后记得重启机器才会生效
    https://support.microsoft.com/zh-cn/help/196271/when-you-try-to-connect-from-tcp-ports-greater-than-5000-you-receive-t

性能优化

我们使用jmeter对接口做了压测,可以得到这个接口的一些性能报告,我们通过衡量这些性能报告,就能知道这个接口有没有符合我们的性能要求,如果不符合,我们就要对接口进行优化。

优化需要考虑多方面:

  • 数据库、应用程序(我们的项目)、中间件(tomcat、nginx)、网络和操作系统等方面
  • 自己的应用属于
    • cpu密集型(cpu用的多,大量的计算)
      我们查到了一堆数据,需要计算、排序、过滤、整合等等
    • 还是io密集型(网络io,磁盘io,数据库io,redis io)。

性能优化主要在应用程序方面主要是优化我们项目接口的代码编写方式和jvm的堆,可以看java虚拟机的1.1.1 堆空间内存分配(默认情况下)

jvm性能监控我们用的是jdk自带的jvisualvm(dos窗口敲jvisualvm即可启动)

在这里插入图片描述
休眠:调用了sleep的线程
等待:使用了wait,等待被唤醒
驻留:线程池里空闲的线程
监视:几个线程发生了锁的竞争(阻塞的线程),正在等待锁的释放

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-app引入海康威视h5player实现视频监控的播放

uni-app引入海康威视h5player实现视频监控的播放知识储备工具下载webplayer.htmlh5player.vue知识储备 uni-app web-view组件相关知识:点击学习。海康威视相关工具下载:点击跳转下载。web-view组件不全屏显示:uni-app web-view 如果设置不全…

[附源码]计算机毕业设计医学图像管理平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

XXL-Job集群部署

文章目录一、调度中心集群部署1. 优点2. 集群需要满足的条件3. 集群部署方案二、任务执行器的集群配置2.1. 集群地址配置2.2. 执行器名称配置2.3. 执行器端口三、路由策略一、调度中心集群部署 1. 优点 调度中心支持集群部署,提升调度系统容灾和可用性&#xff1b…

[附源码]计算机毕业设计springboot在线项目管理

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

亚马逊云科技推出安全数据湖Amazon Security Lake

2022年12月2日,亚马逊云科技在2022 re:Invent全球大会上宣布,推出Amazon Security Lake,该服务可以自动将客户在云端和本地的安全数据集中到客户在亚马逊云科技账户下专门构建的数据湖中,方便客户针对安全数据做出快速行动。 Am…

Java旅游网站管理系统毕业设计、Java旅游线路和景点网站设计与实现 毕设作品参考

功能清单 【后台功能】 系统设置:设置关于我们、联系我们、加入我们、法律声明 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息,支持删…

基于STM32倒车雷达系统(OLED显示)(Proteus仿真+程序+设计报告)

编号:25 基于STM32倒车雷达系统(OLED显示) 功能描述: 本设计由STM32单片机HC_SR04超声波模块OLED按键蜂鸣器LED组成。 1、采用STM32F103最小系统。 2、HC_SR04超声波模块实现测距。测距范围2cm-400cm之间。 3、OLED实时显示测到…

双十二电容笔哪个品牌好?十大电容笔知名品牌

现在,电容笔的普及度和性能都在不断提高。而如何选择一款性价比高的电容笔,则成为了一个很大的难题。很多人把电容笔作为日常使用的工具,因此,大家都在寻找更好,更经济的电容笔。所以,哪个品牌的电容笔最便…

MySQL同步数据到Elasticsearch

背景 随着平台的业务日益增多,基于数据库的全文搜索查询速度较慢,已经无法满足需求。所以,决定基于Elasticsearch 做一个全文搜索平台,支持业务相关的搜索需求。那么第一个问题就是:如何从MySQL同步数据到Elasticsear…

04_openstack之Glance镜像和云主机类型

目录 一、环境准备 二、云主机类型管理 1、基本概念 2、创建云主机类型 三、镜像管理 1、基本概念 2、COW介绍和qcow2创建 3、管理页面创建镜像 一、环境准备 部署openstack私有云环境,步骤:02_openstack私有云部署_桂安俊kylinOS的博客-CSDN博…

Lombok最新最全解析

Lombok目录什么是Lombok运行原理优势与缺点注解示例稳定版valvarNonNullCleanupGetter/SetterToStringEqualsAndHashCodeNoArgsConstructor RequiredArgsConstructor and AllArgsConstructorstaticNameaccessonConstructorDataValuestaticConstructorBuilderSingularBuilder.De…

MySQL Linux服务器快照克隆引起的binlog日志无法正常删除导致文件系统满

最近,一个mysql数据库Linux服务器文件系统空间满,查看是binlog消耗绝大部分空间;经了解mysql数据库每天进行全备并删除1天前binlog日志;然而,2022.11.15日开始的binlog均没删除,后续了解到linux服务器被快照…

全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵

💡 作者:韩信子ShowMeAI 📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41 📘 深度学习实战系列:https://www.showmeai.tech/tutorials/42 📘 自然语言处理实战系列:htt…

图片里的文字如何提取?试试这几种提取方法

最近收到了一些小伙伴的私信,他们收到了对方发送过来的图片,觉得图片上的文字信息比较重要,但是又不知道有什么快速的方法能提取到图片中的文字。平时你们遇到这种情况会怎么做呢?今天我给大家分享几个可以将图片转为文字的方法&a…

JVM调优之StringTable调优

jdk1.8之后,JVM内存结构如下 所谓的StringTable,即字符串常量池(以下简称串池),存放在堆内存中。 我们先介绍一下intern方法 String s "ab"; //将这个字符串对象尝试放入串池,如果有则并不会放…

VMware下载与安装教程(详细)

虚拟机VMware下载与安装教程1. VMware下载2. VMware的安装1. VMware下载 Vmware官网 官网节目如下 直接点击 DOWNLOAD FOR FREE 之后会跳转到如下界面,可以选择版本(目前最新版是17.x),然后点击转至下载就会转到详细下载界面 根据自己的…

TortoiseGit安装和配置详细说明

一、TortoiseGit 简介 TortoiseGit 是免费开源的。 TortoiseGit 支持你执行常规任务,例如 commit、显示日志、区分两个版本、创建分支和标签、创建补丁等。 网站:tortoisegit.org下载:tortoisegit.org/Download文件:tortoisegi…

vue3移动端适配的解决方案

文章目录前言一、使用插件① 纯wap项目效果:Demo:② pc&wap混合项目(我放弃了)二、老方案效果:Demo:前言 最近在给公司内部做一个BBS论坛,需要在电脑和手机上都可以操作,所以需…

Kotlin高仿微信-第57篇-VIP管理列表

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

[附源码]Python计算机毕业设计Django家庭整理服务管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…