我的编程空间,编程开发者的网络收藏夹
学习永远不晚

高并发级别简述

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

高并发级别简述

术语说明:

QPS = req/sec = 请求数/秒

QPS: 每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS。

【QPS计算PV和机器的方式】

QPS统计方式 [一般使用 http_load 进行统计]QPS = 总请求数 / ( 进程总数 * 请求时间 )QPS: 单个进程每秒请求服务器的成功次数

单台服务器每天PV计算公式1:每天总PV = QPS * 3600 * 6公式2:每天总PV = QPS * 3600 * 8

服务器计算服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )

【峰值QPS和机器计算公式】

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

问:每天300w PV 的在单台机器上,这台机器需要多少QPS?答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

问:如果一台机器的QPS是58,需要几台机器来支持?答:139 / 58 = 3

TPS:每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。

并发量级说明:

评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的。但对于并发来说,争议非常之多,这里就从一个技术的角度开始,谈谈几个Web网站的数量级。

相信很多人谈论一个网站的热度,总免不了会询问日均PV,同时在线人数、注册用户数等运营数据,说实话从技术角度来说,这几个数值没有一个可以放在一起比较的——一个静态网站的PV跟一个SNS类/Web Game网站的PV根本就不是一回事。由于互联网有一个传说中的“3秒定律”,可能当下更多的网站技术指标要求1.5秒以内加载整页,或者至少可以达到阅读的标准。如果要较真什么“同时在线”,毫不客气的说,对于HTTP这类短链接的网络协议来说,在WebSocket还不普及的时代,能统计在线纯属扯淡,唯一能做的只是取个时间段,计算下访问用户而已。这些依然可以换算成QPS(Quest Per Second每秒请求数)。就并发而言,我唯一推崇的只有理论最大QPS和悲观QPS。

这里就大致根据理论最大QPS,给网站做几个分类

50QPS以下——小网站

没什么好说的,简单的小网站而已,你可以用最简单的方法快速搭建,短期没有太多的技术瓶颈,只要服务器不要太烂就好。

50~100QPS——DB极限型

大部分的关系型数据库的每次请求大多都能控制在0.01秒左右,即便你的网站每页面只有一次DB请求,那么页面请求无法保证在1秒钟内完成100个请求,这个阶段要考虑做Cache或者多DB负载。无论那种方案,网站重构是不可避免的。

300~800QPS——带宽极限型

目前服务器大多用了IDC提供的“百兆带宽”,这意味着网站出口的实际带宽是8M Byte左右。假定每个页面只有10K Byte,在这个并发条件下,百兆带宽已经吃完。首要考虑是CDN加速/异地缓存,多机负载等技术。

500~1000QPS——内网带宽极限+Memcache极限型

由于Key/value的特性,每个页面对memcache的请求远大于直接对DB的请求,Memcache的悲观并发数在2w左右,看似很高,但事实上大多数情况下,首先是有可能在次之前内网的带宽就已经吃光,接着是在8K QPS左右的情况下,Memcache已经表现出了不稳定,如果代码上没有足够的优化,可能直接将压力转嫁到了DB层上,这就最终导致整个系统在达到某个阀值之上,性能迅速下滑。

1000~2000QPS——FORK/SELECT,锁模式极限型

好吧,一句话:线程模型决定吞吐量。不管你系统中最常见的锁是什么锁,这个级别下,文件系统访问锁都成为了灾难。这就要求系统中不能存在中央节点,所有的数据都必须分布存储,数据需要分布处理。总之,关键词:分布

2000QPS以上——C10K极限

尽管现在很多应用已经实现了C25K,但短板理论告诉我们,决定网站整体并发的永远是最低效的那个环节。我承认我生涯中从未遇到过2000QPS以上,甚至1.5K以上的网站,希望有此经验的朋友可以一起交流下。

高并发级别简述

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

高并发级别简述

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

高并发级别简述

术语说明:QPS = req/sec = 请求数/秒QPS: 每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。可以理解在server中有个counter,每处理一个请求加1,1秒后counter=QPS
2023-06-02

高级Web应用开发前沿技术简述

近些年随着Web2.0概念的蓬勃发展和包括WebAssembly、WebGL2.0等技术的演进,Web应用在很多场景下已经具备和原生相媲美的性能,近些年Web应用又有了哪些新的进展,Safari和Webkit 中有一些怎样有趣又好玩的功能呢
Web2024-12-01

java高并发中并发级别的示例分析

这篇文章给大家分享的是有关java高并发中并发级别的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。阻塞一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行。当我们使用synchronized
2023-06-25

简述MySql四种事务隔离级别

隔离级别: 隔离性其实比想象的要复杂。 在SQL标准中定义了四种隔离级别, 每一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。较低级别的隔离通常可以执行更高的并发,系统的开销也更低。 下面简单地介绍一下四种隔离级别。 1
2022-05-29

SQL级别并发控制策略

SQL级别的并发控制策略通常涉及以下几种方法:锁定:数据库管理系统通过锁定数据进行并发控制。锁定可以分为共享锁和排他锁。共享锁允许多个事务同时读取数据,但只有一个事务可以修改数据。排他锁在事务修改数据时会锁定数据,防止其他事务同时修改。MV
SQL级别并发控制策略
2024-08-04

SQL级别并发冲突解决

在SQL中,当多个用户同时对同一数据进行操作时可能会发生并发冲突。以下是一些常见的解决并发冲突的方法:使用事务:事务是SQL中用于处理并发冲突的基本机制。通过将一系列操作封装在一个事务内,可以保证这些操作要么全部成功,要么全部失败。当多个用
SQL级别并发冲突解决
2024-08-12

SQL级别并发控制优化

SQL级别的并发控制优化主要是通过锁机制和事务管理来实现。以下是一些优化方法:使用合适的锁粒度:在进行并发控制时,需要选择合适的锁粒度。通常情况下,粗粒度锁会降低并发性能,而细粒度锁会增加锁冲突的可能性。在进行设计时需要根据实际情况选择适当
SQL级别并发控制优化
2024-08-12

java高并发ScheduledThreadPoolExecutor与Timer区别

这篇文章主要为大家介绍了java高并发ScheduledThreadPoolExecutor与Timer区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

正确理解Go高级并发模式

Go对并发提供了强大的原生支持,本文讨论Go的高级并发模式,理解这些并发模式,可以帮助我们编写高效的Go应用程序。
Go并发开发2024-11-30

弱隔离级别 & 事务并发问题

数据库的研究者就对事务定义了隔离级别这个概念,也就是在高性能与正确性之间做一个权衡。
数据库隔离2024-12-01

发烧级显卡和高性能级显卡区别

发烧级显卡和高性能级显卡区别有:1、发烧级显卡价格比较贵,而高性能级显卡价格相对便宜;2、发烧级显卡采用最先进的芯片和技术,而高性能级显卡通常配备中高端芯片和技术;3、发烧级显卡在散热和供电方面更加考究,而高性能级显卡的散热和供电系统相对简
2023-07-10

并发事务问题与事务隔离级别

1.并发事务问题1)脏读:一个事物读到另一个事务还没有提交的数据。2)不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。3)幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了“
并发事务问题与事务隔离级别
2014-10-20

MySQL隔离级别解析:数据一致性与高并发之间的平衡术!

InnoDB实现了四个标准的隔离级别,每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。
MySQL隔离2024-11-30

听开发者讲述如何轻松简化Docker:借助Easypanel成为高效开发者​

对于开发者而言,现代应用程序不是从头开始构建的,我们希望用更简单的方式来让大家将想法通过高效的构建变为现实。​
开发云服务2024-11-30

Python高级编程和异步IO并发编程

Python高级编程和异步IO并发编程网盘地址:https://pan.baidu.com/s/1eB-BsUacBRhKxh7qXwndMQ 密码: tgba备用地址(腾讯微云):https://share.weiyun.com/5Z3x
2023-01-31

并发编程技巧:Go WaitGroup的高级用法

在Go语言的并发编程中,WaitGroup是一个非常有用的工具,可以帮助我们等待一组并发操作的完成。除了基本的用法之外,WaitGroup还有一些高级用法,可以使我们的并发编程更加灵活和高效。1. 使用Add方法动态增加等待的数量在一些情况
2023-10-08

事务、隔离级别和并发一致性问题

事务本质上就是一系列逻辑操作,不同数据库、不同存储引擎对事务的支持强度都是不一样的。比如Mysql数据库InnoDB引擎天然支持事务,而Myisam引擎则不支持事务。
数据库Mysql2024-12-01

《MySQL高级篇》十四、多版本并发控制

文章目录 1. 什么是MVCC2. 快照读与当前读2.1 快照读2.2 当前读 3. 复习3.1 再谈隔离级别3.2 隐藏字段、Undo Log版本链 4. MVCC实现原理之ReadView4.1 什么是ReadVie
2023-08-17

初级、中级和高级开发人员之间有什么区别?

公司中入门级、中级和高级开发人员之间的界限在哪里?

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录