【高并发】- 指标介绍

news2024/11/27 22:34:36

 

  1. 什么是高并发

  2. 高并发系统有哪些关键指标

高并发系统介绍

    本文主要讲解高并发系统的概念,在实际开发过程中为什么要使用高并发系统,相比于传统系统,能带来怎样的改变。

1.1 高并发介绍

    高并发(Hign Concurrency),通常是指通过设计保证系统能够同时处理很多请求。

(即在同一个时间点,有很多的请求同时访问同一个接口)

    高并发意味着短时间内有大流量进入系统,需要运用技术手段来抵抗这种大流量的冲击。

    场景:比如流行的淘宝“双十一”、京东“618”、热门车次车票开售以及各种电商秒杀抢购活动的场景等。

1.2 高并发系统关键指标介绍

  1. 响应时间(Response Time):从 第一次 发出请求 到收到系统完整相应数据所需的时间。【响应时间是反映系统性能的重要指标,直接反映了系统响应的快慢】。

  2. 吞吐量(Throughput):单位时间内,系统所处理的用户请求数。

  3. 每秒请求数(QPS):服务器在 一秒 内处理了多少个请求,主要用来表示【读】请求。

  4. 每秒事务数(TPS):服务器 每秒 处理的事务数。

  5. 访问量(PV:Page View):页面浏览量。用户每次对网站中的1个网页访问1次均被记录1次。用户对同一个页面的多次访问被累计记录。(PV是评价网站流量最常用的指标之一)。

  6. 独立访客(UV:Unique Visitor):访问某个站点 或 点击某个链接的不同IP地址数。

  7. 网络流量:并发情况的一个重要指标,包含流入/流出流量。

关键指标详细介绍:

不同角度分析吞吐量:

TPS包括以下3个过程:

  1. 响应时间反映了系统快慢,从以下两个角度出发:

    1. 从用户角度出发,响应时间决定用户的体验感,即响应时间越长,用户体验越差,造成用户流失;反之可提高用户留存率。

    2. 从系统本身出发,响应时间决定系统的性能问题,即响应时间越短,表示系统性能越高,可更好处理业务;反之系统性能越差,甚至可能丢失相关请求/系统不可用,影响公司业务。

  2. 吞吐量反映了系统的负载能力,能够通过吞吐量来分析系统的性能瓶颈

    1. 从业务角度看,吞吐量可以用“请求数/秒”、“人数/天” 或 “处理业务数/小时”等单位来衡量

    2. 从网络角度看,吞吐量可以用“字节数/秒”来衡量

      一般来说,在没有遇到性能瓶颈时,吞吐量 与 虚拟用户数之间存在一定联系,可以采用以下公式来计算吞吐量:

      F = VU × R / T

      其中,F表示吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间。

  3. 每秒请求数(QPS)反映系统在流量高峰时性能指标,通过分析QPS,可以分析出所需机器数量,帮助系统更好进行掌控。

          一般来说,绝大部分系统在白天的请求量比较大,且依据二八原则,80%的流量是在20%的时间段内产生的。

    场景:

        假设每天有5 000 000 个请求,预估QPS = (5 000 000 × 0.8)/(12 × 60 × 60 × 0.2)= 462。所以当前系统每天平均QPS为462,一般来说,为了保险起见,再预留20%左右也是可以的。一般还需要计算当天最高QPS,这样对系统的掌控力度会更强。

        系统最高QPS,可以通过同平均QPS的倍数计算出来。例如,分析业务得到最高QPS大概是平均QPS的2倍,则当前系统峰值QPS ≈ 924 左右。

        在预估出QPS后,用【峰值QPS / 单台机器最高可承受的QPS】,就能计算出需要部署多少台服务器。即:

    机器数 = 峰值QPS / 单台机器最高可承受的QPS

    (单台最高可承受的QPS可以通过压测来得出)

    假设单台机器 通过压力测试 得出最高可承受的QPS为100,那么所需要的机器数量为:924 / 100 ≈ 10台

  4. 每秒事务数(TPS)反映整个系统的交互性能指标,一个事务包括“客户机向服务器发送请求 + 服务器响应”的过程,所以当系统TPS下降时,也表示整个交互过程也会受到影响。

    1. 客户端请求服务端。

    2. 在服务端内部进行业务逻辑处理。

    3. 服务端响应客户端。

  5. 访问量(PV)反映网站是否处于活跃的流量状态中,当访问量多了,某种程度上也可以反映出系统业务方向是符合当前社会行情的。

  6. 独立访客(UV)反映系统每天真实访问数量,通过UV指标,可以反映出系统每天平均的用户数,后续也可以通过用户数进行专项分析及营销。

  7. 网络流量,系统因受限于宽带,所以网络流量(也简称流量)是并发情况的一个重要指标,主要涉及以下两个方面:

    1. 流入流量:从外部访问服务器所消耗的流量。

    2. 流出流量:服务器对外响应的流量。

    此篇文章是高并发系列讲解的第一章,主要讲解高并发系统中的关键指标及介绍,让大家在后续文章中,这些关键指标会贯穿文章中。因此会先把基础参数内容定义清楚,大家在后续过程中也可以更好理解。

如果喜欢文章的话,可以关注及分享,让大家一起学习。

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

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

相关文章

Linux常用命令——sed命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) sed 功能强大的流式文本编辑器 补充说明 sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存…

剖析“类和对象” (下) -------- CPP

学习完“类和对象”(上)【剖析“类和对象” (上) -------- CPP】和(中)【剖析“类和对象” (中) -------- CPP】,相信各位同学对CPP中类与对象的理解或多或少都加深了一点。 本篇博客将和大家一同再次学习CPP中类和对象的知识点,跟随本篇博客的脚步定能…

Java两大工具库:Commons和Guava(1)

您好,我是湘王,这是我的CSDN博客。值此新春佳节,我给您拜年啦~祝您在新的一年中所求皆所愿,所行皆坦途,展宏“兔”,有钱“兔”,多喜乐,常安宁!Java的成功很大…

Kettle(8):删除组件

删除组件能够按照指定条件,将表中的数据删除。 1 需求 有以下一个文本文件,文本文件包含了要删除的两个用户id: id 392456197008193000 267456198006210000 需要使用Kettle将文本文件中两个ID对应的t_user1表的数据删除。 2 构建Kettle数据流图 效果图: 1 将文本文件输…

【算法突击】动态规划系列 (一)| 程序员面试 | 最大子数组和 | 最长递增子序列 | 最长公共子序列

【算法突击】动态规划系列 (一)| 程序员面试 | 最大子数组和 | 最长递增子序列 | 最长公共子序列 文章目录【算法突击】动态规划系列 (一)| 程序员面试 | 最大子数组和 | 最长递增子序列 | 最长公共子序列1. 最大子数组和1.1 题目…

C 语言零基础入门教程(十三)

函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针变量的声明: typedef int (*fun_ptr)(int,i…

ATAC-seq分析:Annotating Peaks(9)

1. 注释开放区域 将已识别的无核小体区域与基因组特征(如基因和增强子)相关联通常很有趣。 一旦注释到基因或增强子的基因,我们就可以开始将 ATACseq 数据与这些基因的特征相关联。 (功能注释、表达变化、其他表观遗传状态&#x…

瑞吉外卖实战

https://blog.csdn.net/weixin_43715214/category_12022798.html大佬记录项目介绍day01功能架构(1)用户层本项目中在构建系统管理后台的前端页面,我们会用到H5、Vue.js、ElementUI等技术。而在构建移动端应用时,我们会使用到微信小…

计算机网络连环炮40问

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

Day09 C++STL入门基础知识六——deque容器 构造函数-赋值操作-大小操作-插入删除-数据存储-排序操作【全面深度剖析+例题代码展示】

无人问津的日子,我为自己喝彩! 文章目录1. 基本概念1.1 功能1.2 与vector区别1.3 图解1.4 内部工作原理1.5 deque 容器的迭代器也是支持随机访问的2. 构造函数2.1 函数原型2.2 代码展示2.3 测试结果2.4 小think2.4.1 小问题2.4.2 思路2.4.3 修改2.4.4 测…

从零开始的数模(六)python在高等数学和线性代数中的应用

科学计算设计数值计算和符号计算,在python中作基础数值计算用numpy和scipy工具库,作符号运算用sympy工具库 sympy工具库–符号运算 符号运算基本知识 1.利用symbols函数创建符号变量构造多个符号变量时中间以空格分隔 2.利用符号变量创建表达式 3.利用…

Hive整合HBase,操作HBase表

Hive over HBase原理 Hive与HBase利用两者本身对外的API来实现整合,主要是靠HBaseStorageHandler进行通信,利用 HBaseStorageHandler,Hive可以获取到Hive表对应的HBase表名,列簇以及列,InputFormat和 OutputFormat类&…

STS:Surround-view Temporal Stereo for Multi-view 3D Detection——论文笔记

参考代码:None 1. 概述 介绍:这篇文章提出的方法是对LSS中深度估计部分进行改进,其改进的点是在深度估计部分引入立体匹配去估计周视相机下的深度信息,其中立体匹配使用前后视频帧进行构建(可以看作是时序信息的使用&…

node-sass安装失败的解决方案

Nodejs 新版安装过程需要安装node-sass模块,开始一直无法安装成功,网上找了很多方法都无法解决,找了很久才找到的解决方案。 1.1 node-sass安装前准备 Option 2: Install dependencies and configuration manually Install Visual C Build E…

Python处理zip压缩文件

文章目录ZipFile对象写入压缩文件读取和解压缩常用属性ZipInfoZipFile对象 顾名思义,zipfile是处理zip文件的模块,其中最重要的类是ZipFile,其构造函数为 ZipFile(file, moder, compressionZIP_STORED, allowZip64True, compresslevelNone,…

使用VGG网络训练发生错误RuntimeError: CUDA out of memory解决方案:

问题在使用VGG网络训练Mnisist数据集时,发生错误RuntimeError: CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 2.00 GiB total capacity; 1.45 GiB already allocated; 0 bytes free; 1.47 GiB reserved in total by PyTorch) If reserved memory is &…

发布详解 | Flutter 3.7 稳定版发布

新年伊始,由 Flutter 3.7 正式版来「打头阵」!我们与整个 Flutter 社区成员们继续在 Flutter 3.7 中优化了框架,包括创建自定义菜单栏和层叠式菜单、更好的国际化工具支持、新的调试工具以及其他功能和特性等。新的稳定版里,我们在…

JUC面试(十二)——AQS

AQS juc.locks包下 AbstractQueuedSynchronizer,抽象的队列同步器 aqs是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石, 通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示持有锁的状态&#x…

极限运算法则——“高等数学”

各位CSDN的uu们你们好啊,今天,小雅兰学习的内容是极限运算法则 回顾 无穷小的极限运算法则 定理1:两个无穷小的和是无穷小 定理2:有界函数与无穷小的乘积是无穷小 极限的四则运算法则 定理3 定理4 定理5:极限的保序性…

实现自己的数据库二

一 前言上次数据库支持了一个测试表的插入和查询,但是数据全部保存到磁盘中的,如果程序重启后,数据都会全部丢了,所以需要持久化到磁盘上,像sqlite一样,简单的将数据库的数据保存到一个磁盘文件上。二 实现…