电商系统设计到开发02 单机性能压测

news2024/11/27 4:13:41

一、前言

接着上篇文章:电商系统设计到开发(第一版)-CSDN博客

已经开发的代码,今天我们对上面开发的代码进行压力测试,看看单机部署的情况下,性能表现如何。代码地址:风萧萧兮/concurrency-entry-task

有兴趣的可以看看

二、数据准备

(保证测试用例都正常通过)

用户数:100w,用户ID 1~100_0000,每个用户余额 10w

商品数:100w,商品ID  1~100_0000, 单价都为1元,数量均为1亿件,商家ID均为 100

模拟:1w个用户同时抢购同一件商品

三、服务器准备

我的本地window电脑作为测试机器(i7 13代处理器,32G内存+1T固态硬盘)

使用Wmware 虚拟了4台Centos机器分别是

Centos00 ,1CPU + 2G内存+  20G固态硬盘   |  部署 Consul server

Centos01 ,1CPU + 1G内存+  20G固态硬盘   |  部署 MySQL5.7.44

Centos02 ,1CPU + 1G内存+  20G固态硬盘   |  部署 user-center

Centos03 ,1CPU + 1G内存+  20G固态硬盘   |  部署 goods-center

四、压测脚本

4.1 参数准备

随机1w个用户(编号在20000~30000)

抢购商品编号为10000,每次交易数量随机1~3

3.2 第一次压测-10个线程

压测5分钟,观察服务器的CPU和内存,最后看压测报告

走你:

数据库、goods-center、user-center服务,总体运行平稳,吞吐量44/s,99时延 358 ms

结论:顶得住!!!

3.3 第二次压测-30个线程

压测5分钟,观察服务器的CPU和内存,最后看压测报告

数据库、goods-center、user-center服务,总体运行平稳,吞吐量110/s,99时延 498 ms

结论:还能顶!!!

3.4 第三次压测-100个线程

压测5分钟,观察服务器的CPU和内存,最后看压测报告

数据库、goods-center、user-center服务,总体运行平稳,吞吐量115/s,99时延 1285ms

结论:增加了70个线程,吞吐量基本没有增加了,时延倒是增加了不少,所以基本上可以断定这个接口的并发量为110左右

五、原因分析

5.1 下单流程分析

一个请求需要,查询数据库4次,更新4次 ,插入2次

总共访问数据库10次,2个事务,其中3次查询是加锁查询,

还有 1 次 rpc 请求

那么如何提高并发量呢?

欢迎继续看后续的优化方案

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

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

相关文章

Linux中关于head命令详解

head的作用 head用于查看文件的开头部分的内容。 head的参数 -q隐藏文件名-v 显示文件名-c<数目>显示的字节数-n<数目>显示的行数 head的案例 # 查看yum.log前五行内容 head -5 yum.log

对于随机生成图片接口浏览器走缓存的问题

前提场景 目前有一个api 他可以随机生成一张图片&#xff0c;我通过v-for循环一个Array渲染出来几个img 并且都调用了该接口&#xff0c;但是每个img都是一样的图片 具体代码如下 <div class"icon-group-box" v-for"item in groupList" :key"item…

Oracle篇—参数文件在11gRAC或12cRAC的启动位置介绍

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

让Mac与Windows合二为一:Microsoft Remote Desktop for Mac的魅力

在数字时代&#xff0c;远程连接已成为工作、学习和生活的必备工具。而Microsoft Remote Desktop for Mac正是这样一款能够让你随时随地&#xff0c;轻松连接到Windows系统的强大工具。 Microsoft Remote Desktop for Mac不仅提供了高效、稳定的远程访问体验&#xff0c;更凭借…

黑马程序员-瑞吉外卖-day4

实现账号的启动禁止 EmployeeController PutMappingpublic R<String> update(RequestBody Employee employee){employeeService.updateById(employee);return R.success("员工信息修改成功");} 出错 解决 common目录下 引入JacksonObjectMapper package com…

Sentinel 降级、限流、熔断

前言 在现代分布式系统中&#xff0c;如何有效地保护系统免受突发流量和故障的影响&#xff0c;是每个开发人员和架构师都需要思考的重要问题。在这样的背景下&#xff0c;Sentinel作为一个强大的系统保护和控制组件&#xff0c;为我们提供了降级、限流、熔断等多种策略&#…

宝塔 ftp 服务器发回了不可路由的地址/读取目录列表失败

ftp连接不上&#xff1a; 1.注意内网IP和外网IP 2.检查ftp服务是否启动 &#xff08;面板首页即可看到&#xff09; 3.检查防火墙20端口 ftp 21端口及被动端口39000 - 40000是否放行 &#xff08;如是腾讯云/阿里云等还需检查安全组&#xff09; 4.是否主动/被动模式都不能连接…

Java学习笔记(七)——操作数组工具类Arrays

文章目录 ArraysArrays.toString()Arrays.binarySearch()Arrays.copyOf()Arrays.copyOfRange()Arrays.fill()Arrays.sort()升序排序降序排序 Arrays 操作数组的工具类。 Arrays.toString() import java.util.Arrays;public class test40 {public static void main(String[] a…

SAP S/4HANA 2023 Fully-Activated Appliance 虚拟机版介绍

注&#xff1a;市面上所有在售虚拟机均为拷贝本人所作的虚拟机&#xff0c;存在各种技术问题&#xff0c;请知悉。 SAP S4HANA 2023 FAA版本内置了四个Client&#xff1a; 1、000&#xff1a;SAP初始Client&#xff0c;原则上不能动&#xff1b; 2、100&#xff1a;只激活了US…

自己是如何使用单元测试

前言 自己是如何使用单元测试 进行单元测试能够让我们在编写方法的具体实现代码后&#xff0c;能清晰地看到其是否能实现预期的功能&#xff0c;有助于我们及时修正自己方法中存在的bug&#xff0c;以免在后续使用到某方法时出现意想不到的错误。 一、引入单元测试所使用的依赖…

MySQL基础笔记(9)事务

一.简介 所谓事务&#xff0c;是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求&#xff0c;即&#xff0c;这些操作要么同时成功&#xff0c;或者同时失败——OS中有原语不可分割的概念&…

网工每日一练(1月18日)

1.在下面关于VLAN的描述中&#xff0c;不正确的是 &#xff08; C &#xff09; 。 A、VLAN把交换机划分成多个逻辑上独立的交换机 B、主干链路&#xff08;Trunk&#xff09;可以提供多个VLAN之间通信的公共通道 C、由于包含了多个交换机&#xff0c;所以VLAN扩大了冲突域 D、…

高速CAN总线 C 或 B 节点发送 A节点接收 电压分析

CAN收发器放大图 CAN总线3节点框图&#xff0c;如下图 图① CAN总线 C 节点发送&#xff0c;B 节点接收简化后的逻辑框图如下图。 总线上 A B C 三个节点&#xff0c;按照CAN总线规定&#xff0c;首尾 A B 两个节点处需要接入1个120Ω的终端电阻&#xff0c;如下图&#xff1a…

Pyro —— Velocity Voxel Scale

Velocity Voxel Scale是H19.5引入的新参数&#xff0c;该参数可单独定义volume和速度体素&#xff1b;根据参数设置&#xff0c;可观察到模拟时间的显著变化&#xff1b; Velocity Voxel Scale对DOP和SOP均可用&#xff1b;对DOP设置&#xff0c;该参数在Smoke Object&#xf…

django admin后台中进行多个手机号解密消耗时间对比

需求&#xff1a; 1 手机号在数据库中是使用rsa方式加密存储&#xff0c;后台查看中需要转换为明文&#xff0c;因为需要解密多个手机号&#xff0c;所以在后台查看中消耗时间3秒&#xff0c;希望通过多线程&#xff0c;多进程&#xff0c;异步方式来缩短时间 相关注意点&…

JVM内存模型剖析

JDK体系结构 JDK&#xff1a;JDK提供了编译、运行Java程序所需的各种资源和工具&#xff1b;包括Java编译器&#xff0c;Java运行时环境&#xff1a;JRE&#xff1b;开发工具包括编译工具(javac.exe)打包工具(jar.exe)等。 JRE&#xff1a; 即JAVA运行时环境&#xff0c;JVM就…

小程序样例2:简单图片分类查看

基本功能&#xff1a; 1、根据分类展示图片&#xff0c;点击类目切换图片&#xff1a; 2、点击分类编辑&#xff0c;编辑分类显示&#xff1a; 3、点击某个分类&#xff0c;控制主页该分类显示和不显示&#xff1a; 类目2置灰后&#xff0c;主页不再显示 4、点击分类跳转到具…

大数据开发之kafka(完整版)

第 1 章&#xff1a;Kafka概述 1.1 定义 Kafka是一个分布式的基于发布/订阅模式的消息队列&#xff0c;主要应用于大数据实时处理领域。 发布/订阅&#xff1a;消息的发布者不会将消息直接发送给特定的订阅者&#xff0c;而是将发布的消息分为不同的类别&#xff0c;订阅者只…

Linux系统安装Samba服务器

在实际开发中&#xff0c;我们经常会有跨系统之间文件传递的需求&#xff0c;Samba 便是能够在 Windows 和 Linux 之间传递文件的服务&#xff0c;功能也是非常强大和好用&#xff0c;本篇文章将介绍如何在 Linux 系统上安装 Samba 服务&#xff0c;以 CentOS7 系统为例。 一、…

Java强软弱虚四大引用

文章目录 一、强引用二、软引用三、弱引用四、虚引用 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、强引用 在Java中&#xff0c;强引用&#xff08;Strong Reference&#xff09;是最常见的引用类型。当我们创建一个对象并将其赋值给一个变量时…