当前位置: 首页 > news >正文

大白话高并发(三)

背景

高并发得第三篇,讲一讲压测吧,因为我的目的是模拟100万人同时来秒杀。

是不是真的要找100万个人

没必要 ,你就算100万人掐着表在同一毫秒内把请求请求某一台机器,服务器也不可能在同一时间处理那么多请求,因为服务器的io模型大多是多路复用,网络模型是reactor,都是排队一个一个来处理的,而且单台服务器能不能承受100万并发也是个问题,所以针对短链接来说,测出来单台机器的最大qps才是关键,比如我得并发量是100万单台机器的最大qps是2万那么我就需要50台机器,(注意我这里说的是短链接,如果你是长连接肯定是要模拟100万个端,每个机器有大概6万个端口,因此需要16台机器作为客户端,服务端通过参数调整服务器的最大文件数为100万)

压测的思路

在这里插入图片描述

我觉得这张图特别的好,
在“并发连接与吞吐量”的图中,吞吐量的峰顶处对应的并发连接数,就是系统能处理的极限并发连接数了。
而在“延迟与吞吐量”的图中,在吞吐量颓势未显时达到设定的最大延迟处,就是系统的最大吞吐量了。

在这里插入图片描述

也就是说你先逐步增大并发找到qps最大那个点,比如刚开始并发100qps10000,然后并发200qps20000,并发300qps下降到19000了,并发400qps18000了,那么我们说20000qps就是这台机器最大的吞吐量了,然后我们设置一个请求响应延迟的阈值,比如我要求我们团队的接口不能超过200毫秒,那么我就看一下,虽然最大qps是20000但是每个接口的延迟是300毫秒,所以这不是我想要的,那就降低并发量,发现15000qps的时候延迟为200毫秒,所以我们就可以说每台机器的qps为15000,那么我们要是想支持100万人秒杀,就需要100/1.5大约70台机器。

还有我们常说的28定律 百分之80的用户在每天百分之20的时间来访问,假设平台用户是300万,一天24小时

(30000000.8) / (2460600.2)= 173
也就说你只要保证你的接口qps能做到173就可以应付大部分日常场景了,但是我们说的是秒杀场景,还是要求高一点

go-stress-testing

在这里插入图片描述

所以我们就看看github上用golang实现的压测软件,直接看源码。

main.go

在这里插入图片描述

dispose方法

在这里插入图片描述
其实就是for循环了需要多少个go携程去请求,真的没什么

http方法

在这里插入图片描述
一样,也只是循环了单个携程请求的数量。

总结

规定好最大延迟,测出单台机器最大qps,再根据你预计的人数,就知道了需要多少台机器

参考
https://zhuanlan.zhihu.com/p/85896572

相关文章:

大白话高并发(三)

背景 高并发得第三篇,讲一讲压测吧,因为我的目的是模拟100万人同时来秒杀。 是不是真的要找100万个人 没必要 ,你就算100万人掐着表在同一毫秒内把请求请求某一台机器,服务器也不可能在同一时间处理那么多请求,因为…...

vue全家桶(四)前端工程化

vue全家桶(四)前端工程化1.模块化的相关规范1.1模块化概述1.2模块化的分类A.浏览器端的模块化B.服务器端的模块化C.ES6模块化1.2.1 Node.js中通过bable体验ES6模块化1.2.2 ES6模块化的基本语法1.2.2.1 默认导出与默认导入1.2.2.2 按需导出与按需导入1.2.…...

超螺旋滑模控制(STA)

超螺旋滑模控制(Super Twisting Algorithm, STA) 超螺旋滑模控制又称超扭滑模控制,可以说是二阶系统中最好用的滑模控制方法。 系统模型 对于二阶系统可以建立具有标准柯西形式的微分方程组 {x˙1x2x˙2fg⋅u\begin{cases} \dot x_1 x_2 \\ \dot x_2 f g \cdo…...

NX二次开发编译时dll自动数字签名及拷贝

前言 在UG5.0开始,所有基于UG二次开发的DLL都要“签名”后才能被客户端上正版的NX调用。 一、基于C# 开发签名 1、添加资源文件 (1)项目类库上右键–>属性–>资源–>添加资源右边小三角–>添加现有文件–>切换到UG安装目录下…...

教你如何搭建人事OA-薪资管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建人事OA-薪资管理。1.2、应用场景根据设置薪资基础及考勤和绩效的数据计算得到各个员工工资详情。2、设置方法2.1、表单搭建1)新建表单【工资表】,字段设置如下;名称类型名称类型人员资料分…...

ChIP-seq 分析:Mapped 数据可视化(4)

1. Mapped reads 现在我们有了 BAM 文件的索引&#xff0c;我们可以使用 idxstatsBam() 函数检索和绘制映射读取的数量。 mappedReads <- idxstatsBam("SR_Myc_Mel_rep1.bam")TotalMapped <- sum(mappedReads[, "mapped"])ggplot(mappedReads, aes(x…...

Jenkins 基于Kubernetes 弹性构建池

流程&#xff1a;创建Jenkins Agent&#xff1b;获取Jenkins Agent的参数&#xff1b;渲染yaml模板&#xff1b;调用K8s API在固定的NS中创建一个Pod&#xff1b;运行Jenkins pipeline到agent&#xff1b;创建Agentimport hudson.model.Node.Mode import hudson.slaves.* impor…...

经典算法题---链表奇偶重排(好题)双指针系列

我听别人说这世界上有一种鸟是没有脚的&#xff0c;它只能够一直的飞呀飞呀&#xff0c;飞累了就在风里面睡觉&#xff0c;这种鸟一辈子只能下地一次&#xff0c;那一次就是它死亡的时候。——《阿甘正传》这一文章讲解链表的奇偶排序问题&#xff0c;这是一道不难但是挺好的链…...

数据仓库实战

目录1、最佳实战1.1 表的分类1.2 ETL策略1.3 任务调度2、项目实战2.1 项目概述2.2 数据描述2.3 架构设计2.4 环境搭建2.5 项目开发1、最佳实战 1.1 表的分类 维度建模中表的类型&#xff1a;事实表和维度表 事实表又可以分为&#xff1a;事务事实表、周期快照事实表、累积快照…...

GPT系列:GPT, GPT-2, GPT-3精简总结 (模型结构+训练范式+实验)

&#x1f604; 花一个小时快速跟着 人生导师-李沐 过了一遍GPT, GPT-2, GPT-3。下面精简地总结了GPT系列的模型结构训练范式实验。 文章目录1、GPT1.1、模型结构&#xff1a;1.2、范式&#xff1a;预训练 finetune1.3、实验部分:2、GPT-22.1、模型结构2.2、范式&#xff1a;预…...

ASE12N65SE-ASEMI高压MOS管ASE12N65SE

编辑-Z ASE12N65SE在ITO-220AB封装里的静态漏极源导通电阻&#xff08;RDS(ON)&#xff09;为0.68Ω&#xff0c;是一款N沟道高压MOS管。ASE12N65SE的最大脉冲正向电流ISM为48A&#xff0c;零栅极电压漏极电流(IDSS)为10uA&#xff0c;其工作时耐温度范围为-55~150摄氏度。ASE…...

centos8防火墙命令配置(开放端口)

查看防火墙状态&#xff1a;&#xff08;root用户&#xff09;firewall-cmd –state启动防火墙&#xff1a;&#xff08;root用户&#xff09;systemctl start firewalld.service查看防火墙开放端口&#xff1a;&#xff08;root用户&#xff09; firewall-cmd --list-ports …...

Instagram营销教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Instagram营销初学者教程 - 从简单和简单的步骤学习Instagram营销从基本到高级概念&#xff0c;包括概述&#xff0c;业务战略&#xff0c;安装和注册&#xff0c;发布和参与&#xff0c;活动审查&#xff0c;微调内容&#xff0c;营销工具和应用程序&#xff0c;集成…...

HTTP Code含义

HTTP Code描述详细100继续100&#xff08;继续&#xff09;状态代码表示一个已收到请求&#xff0c;尚未被拒绝服务器。服务器打算在请求已完全收到并已采取行动。当请求包含 Expect 标头字段时100-continue expectation&#xff0c;100响应表示服务器希望接收请求有效负载主体…...

Elasticsearch:Security API 介绍

在我之前的文章 “Elasticsearch&#xff1a;运用 API 创建 roles 及 users” &#xff0c;我展示了如何使用 Security API 来创建用户及角色来控制访问 Elasticsearch 中的索引。在今天的文章中&#xff0c;我将展示一个使用 Security API 来创建一个用户及角色来访问一个索引…...

springmvc考研交流平台 java ssm mysql

随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;考研交流平台当然也不能排除在外&#xff0c;从备考资料、课程学习的统计和分析&#xff0c;在过程中会产生大量的、各种各样的…...

2.15 vue3 day01 setup ref setup的参数 prop slot插槽 自定义事件通信

二、常用 Composition API 官方文档: 组合式 API 常见问答 | Vue.js 1.拉开序幕的setup 理解&#xff1a;Vue3.0中一个新的配置项&#xff0c;值为一个函数。 setup是所有Composition API&#xff08;组合API&#xff09;“ 表演的舞台 ”。 组件中所用到的&#xff1a;数据…...

CentOs7更新Yum源

1.安装wget yum install -y wget 2.备份配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 3.下载国内yum源文件&#xff08;centOs7&#xff0c;比如阿里&#xff09; wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.al…...

【C/C++】VS2019下C++生成DLL并且成功调用(金针菇般细)

目录 一&#xff0c;生成动态链接库 二&#xff0c;使用动态链接库 一&#xff0c;生成动态链接库 1.打开VS2019&#xff0c;创建新项目&#xff0c;选择 动态链接库(DLL) 模板后进行下一步 2.输入项目名称&#xff0c;其它默认就行(可自行选择)&#xff0c;点击创建 3 工程…...

如何重新安装安卓手机系统

下载并安装您设备的驱动程序和ADB工具。如果您已经拥有了它们&#xff0c;请跳过此步骤。没有就百度下载。 打开终端或命令提示符&#xff0c;并将其设置为包含ADB二进制文件的目录。 启动设备并将其连接到计算机上。 在终端或命令提示符中运行以下命令以确认设备是否连接成…...

ArcGIS API for JavaScript 4.15系列(7)——Dojo中的Ajax请求操作

1、前言 作为重要的前后端交互技术&#xff0c;Ajax被广泛应用于Web项目中。无论是jQuery时代的$.ajax还是Vue时代下的axios&#xff0c;它们都对Ajax做了良好的封装处理。而Dojo也不例外&#xff0c;开发者使用dojo/request模块可以轻松实现Ajax相关操作&#xff0c;下面开始…...

智慧校园电子班牌系统

智慧电子班牌区别于传统电子班牌&#xff0c;智慧校园电子班牌系统更加注重老师和学生的沟通交流和及时数据交互。学校为每个教室配置一台智能电子班牌&#xff0c;一般安装于教室门口&#xff0c;用来实时显示学校通知、班级通知&#xff0c;可设置集中分布式管理&#xff0c;…...

软考高项——第五章进度管理

范围管理进度管理总线索规划进度管理定义活动活动排序估算活动资源估算活动时间制定进度管理计划控制进度进度管理总线索 进度管理的总线索包括&#xff1a; 1&#xff09;规划进度管理 2&#xff09;定义活动 3&#xff09;活动排序 4&#xff09;估算活动资源 5&#xff09;…...

基于springboot+bootstrap+mysql+redis搭建一套完整的权限架构【二】【整合springSecurity】

1、创建数据库 注意&#xff1a;mysql默认字符集为utf8&#xff0c;默认排序规则为utf8_general_ci。一般我们也会选择字符集为utf-8 MySQL在5.5.3之后增加了这个utf8mb4的编码&#xff0c;utf8mb4完全向下兼容utf8&#xff0c;为了节省空间&#xff0c;一般情况下使用utf8也就…...

字节6面,成功唬住面试官拿了27K,软件测试面试也没有传说中那么难吧....

字节的面试挺独特&#xff0c;每轮面试都没有 HR 约时间&#xff0c;一般是晚上 8 点左右面试官来一个电话&#xff0c;问是否能面试&#xff0c;能的话开始面&#xff0c;不能就约一个其它时间。全程 6 面&#xff0c;前五面技术面&#xff0c;电话面试&#xff0c;最后一面是…...

Qt扫盲-QMake 语言概述

QMake 语言概述一、概述二、变量三、替换函数四、测试函数一、概述 这里主要就是记录一下如何使用 qmake Manual&#xff0c;里面关于我对 qmake的理解&#xff0c;以及如何配置这个 qt 工程文件&#xff0c;通过配置工程文件&#xff0c;来构建出&#xff0c;APP&#xff0c;…...

代码随想录二刷Day02链表:203.移除链表元素,707.设计链表,206.反转链表

203.移除链表元素&#xff08;写if的时候&#xff0c;要考虑要不要写else语句&#xff09; 文章链接&#xff1a;代码随想录 (programmercarl.com) 思路&#xff1a; &#xff08;1&#xff09;要操作链表的话&#xff0c;可以设置一个虚拟头节点&#xff0c;从而方便操作 …...

Zabbix 3.0 从入门到精通(zabbix使用详解)

Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻&#xff0c;提前提醒我们服务器出问题了 当出问题之后&#xff0c;可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性&#xff08;也称为可用性…...

基于JDBC框架的事务管理

事务: Transaction, 是数据库中的一种能够保证多个写操作要么全部成功, 要么全部失败的机制在基于Spring JDBC的数据库编程中, 在业务方法上添加Transactional注解, 即可使得这个业务方法是事务性的举例, 一个银行转账操作, 转账时需要执行的sql语句大致是:UPDATE 存款表 SET 余…...

使用IPV6+DDNS连接内网主机

0、前言 IPV6已经普及多年&#xff0c;但是作为互联网用户好像并没有在实用性上有更多感受&#xff0c;或者说IPV6并没有让普通用户感觉到改变。我作为网络从业者其实也没有过多关注。在工作中普遍遇到的还是基于IPV4的网络&#xff0c;比如各个行业的网络、单位的内网区域和互…...

导购网站如何做/微信推广链接怎么制作

动态代理分为Java SDK 动态代理以及cglib动态代理&#xff0c;这里先了解下Java SDK动态代理 Java SDK动态代理代码demo&#xff1a; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;public class JDKDynamic…...

青海做网站哪家好/百度网站客服电话

导出整个数据库到SQL mysqldump -h localhost -u user-p dbname> /home/bao/test.sql 然后输入密码&#xff0c;确认 导出数据库的某张表到 sql mysqldump -h localhost -u user -p dbname some_table_name> /home/bao/test.sql 导出数据库所有表结构 mysqldump -…...

沈阳网站搜索引擎优化/凡科建站的优势

橡胶密封圈是由一个或几个零件组成的环形罩&#xff0c;固定在轴承的一个套圈或垫圈上并与另一套圈或垫圈接触或形成窄的迷宫间隙&#xff0c;防止润滑油漏出及外物侵入。一、按类状分1.O型密封圈系列拥有氟橡胶&#xff0c;丁晴胶&#xff0c;硅胶、乙丙橡胶、双氟橡胶等多种材…...

浏阳做网站推荐/外链推广论坛

本站使用「署名 4.0 国际 (CC BY 4.0)」许可协议&#xff0c;欢迎转载、或重新修改使用&#xff0c;但需要注明来源。 署名 4.0 国际 (CC BY 4.0)本文作者: 苏洋创建时间: 2018年07月19日统计字数: 2595字阅读时间: 6分钟阅读原始链接: https://soulteary.com/2018/07/19/clean…...

二级域名做网站/网络平台推广广告费用

平台之大势何人能挡&#xff1f; 带着你的Net飞奔吧&#xff01;&#xff1a;http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址&#xff1a;http://mozilla.github.io/pdf.js/getting_started/#download 解压打开&#xff0c;这两个文件夹是精华 你可以自己看看…...

广东深广东深圳网站建设服务/手机打开国外网站app

点击上方蓝色字体&#xff0c;选择“标星公众号”优质文章&#xff0c;第一时间送达上一篇&#xff1a;这300G的Java资料是我师傅当年给我的&#xff0c;免费分享给大家&#xff08;已修复&#xff09;下一篇&#xff1a;昨天分享资料不小心把百度网盘深处的秘密泄露了&#xf…...