2018年11月11日上午11点,我拖着疲惫身躯回到家中,准备美美的睡上一觉,洗去身上值班一宿而带来的疲惫。突然想到之前有交代女朋友让她帮我抢东西,不知道怎么样了。

QPS、TR、并发用户数、最佳线程数等等这些都是系统对并发处理上有关的概念。可以用来衡量一个系统的可用性等指标。

RT

响应时间(Response Time),是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间。

当我们评价一个网站的"快"和"慢"的时候,其实说的就是他的RT时间的长和短。当我们访问某个网站,有时候我们会说这个网站很"卡",其实言下之意说的就是这个网站的RT很长。

如果一个网站的RT很长的话,就会特别的影响用户体验。所以,RT是很重要的一个指标。也是各个网站需要重点优化的。

拿一个游乐园的例子来说明一下可能会比较容易理解,比如我们去迪士尼乐园游玩时候,大多数的项目都是需要排队的。

为了让游客知道一个项目需要排队多久才能玩上,迪士尼做了很多事情,比如他们有一个App,专门可以提示每个项目的预计排队时间。再有就是每个项目的排队处都有一个小牌牌,上面写着预计排队时间。

但是,这个时间并不是凭空设定出来的,而是『计算』出来的。

迪士尼的排队时间计算方法:

1、迪士尼在每个项目的入口处和出口处都会设置工作人员。 
2、入口处工作人员随机寻找游客,给游客一张小纸条,上面记录着游客开始排队的时间。 
3、入口处工作人员提醒游客,项目游览玩之后,在出口处把小纸条交还给出口处的工作人员。  
4、出口处工作人员在收到游客的小纸条后,会用:当前时间-游客开始排队的时间 = 排队时长。 
5、为了尽量让数据准确,一般会收集多个排队时长之后,计算一个平均值。

以上就是迪士尼的排队时间计算法。其实,这也是RT的计算方法。在一个请求开始的时候记录时间,请求结束的时候再记录时间,两个时间的差值,就是RT了。

迪士尼的一个项目的RT包含了多个时间段:排队时间、听项目讲解时间、项目准备时间、项目游玩时间等。

服务器响应时间也有多部分组成,一般包含:请求发送时间、网络传输时间和服务器处理时间等三部分。

QPS

QPS,指的是系统每秒能处理的请求数(Query Per Second) ,在Web应用中我们更关注的是Web应用每秒能处理的request数量。这个是衡量系统性能的重要指标。有时候,我们也称之为吞吐量。

QPS和RT几乎总是成对出现的。当我们评价迪士尼的一个项目的好坏的时候,通常会包含这几个指标:是否好玩、游玩时长以及可以同时容纳多少人。

这个可以同时容纳多少人,就可以简单的理解为QPS。很大程度上,一个项目同时可以容纳多少人,其实会大大的影响游客的游玩时长。

所以,QPS和RT之间是有着一定的关系的:

RT= 并发数/QPS
QPS= 并发数/RT

虽然上面的等式看上去,在并发数一定的情况下,想要提升QPS的话就只能降低RT。但其实并不是,以上只是QPS的计算方法。想要提升QPS往往有很多手段。

就像想要提升游乐设施的吞吐量,最首先想到的办法就是升级设备,比如增加游乐场地的面积,增加设备的座位数目,增加排队的队伍个数等。

在计算机系统中,想要提升QPS,主要可以在CPU、内存等硬件上面下功夫,比如提升CPU利用率、增加CPU数目、提升内存等。

和QPS类似,还有个TPS的概念,这里就不做展开了,本文中提到的吞吐量,泛指QPS和TPS,不做详细区分。

并发用户数

并发用户数指的就是同时跑到一个项目前面排队的人数。

关于并发用户数有两种常见的错误观点。

一种错误观点是把并发用户数量理解为使用系统的全部用户的数量;(比如迪士尼的飞跃地平线项目一天可能会接纳50万人,我们不能说这个50万就是并发用户数)

还有一种错误观点是把用户在线数量理解为并发用户数量。(比如晚上六点的时候,迪士尼的飞跃地平线项目排队加观看人数共有1万人,我们不能说这个1万就是并发用户数)

并发用户数量的正确理解为:在同一时刻与服务器进行了交互在线用户数量。(我们说,晚上六点的时候,共有8000人正在和正在排队使用飞跃地平线这个项目。这才是并发用户数)

拿系统来说,我们说淘宝详情页的并发用户数,其实说的是同一时刻请求查看详情页的用户个数。有些用户虽然也在浏览详情页,但是它并没有在并发时刻和系统有交互,这就不算的。

最佳线程数

最佳线程数指的就是一个项目最多可以容纳的人数,这里的容纳可以包含排队的人数。

迪士尼每新开一个场馆或者一个游戏项目的时候,都会是一个试运营的阶段。在试运营阶段,通过不断调整并发用户数来观察整个场馆或者项目的运行情况。

除了上线新场馆和新项目以外,有的是在节假日之前也会有一些类似的实验。

这和计算机软件的压测很像。就是不断的提高请求数目,来观察系统的QPS和系统的其他指标,如CPU情况、内存情况等。

性能压测的情况下,起初随着用户数的增加,QPS会上升并对CPU等影响不大,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时CPU Load有飙高、内存占用大等情况发生。随之而来的伴随着请求的响应时间大幅增加。这个阀值我们认为是最佳线程数。

如果并发请求数目,超过了系统的最佳线程数,那么就会导致激烈的资源竞争,随着资源的匮乏甚至枯竭,整个系统也就面临着灾难。

说完,也不管女朋友的反应,我顺手给她扔了一个链接( http://www.techug.com/post/10-tips-of-web-app-performance.html ),然后倒到床上就开始补觉了。

不过,在半睡半醒之间,我似乎听到女朋友还在埋怨:为啥有的人可以更换地址,我却更换不了呢?

我知道,下次肯定要给她讲熔断、限流和降级等知识了。

漫话:如何给女朋友解释为什么双11无法修改收货地址相关推荐

  1. 漫话:如何给女朋友解释为什么双11无法修改收货地址?

    作者:漫话编程 来源:漫话编程 2018年11月11日上午11点,我拖着疲惫身躯回到家中,准备美美的睡上一觉,洗去身上值班一宿而带来的疲惫.突然想到之前有交代女朋友让她帮我抢东西,不知道怎么样了. Q ...

  2. 飞猪“新旅行联盟”成员大集结,双11全球旅行好货预售开始

    第十个天猫双11来了. 10月20日,双11预售开始,阿里巴巴旗下旅行品牌飞猪集结全球旅行品牌力量,再度刷新"旅行狂欢趴"的含金量.覆盖全球200多个目的地超过1万件旅行商品,为消 ...

  3. 灵芝燕窝、鱼油钙片成为天猫双11中老年群体囤货首选

    开售3分钟,鱼跃旗舰店破千万:6分钟,寿仙谷旗舰店破千万:8分钟,海昌旗舰店破千万:30分钟,可复美旗舰店破亿--10月31日晚8点,天猫双11第一波正式开售,"囤健康"产品已成消 ...

  4. CSS双色虚线边框,京东订单界面收货地址的下划线

    实现京东订单类似的下划线 .bottom_line {height: 10upx;background-image: linear-gradient(-45deg,#7ba9ff 0,#7ba9ff ...

  5. 漫话:如何给女朋友解释什么是熔断?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 最近比较忙,白天上班,晚上还得面试,都没有时间关注新闻.某天晚上刚 ...

  6. 她,连续 5 年担任双 11 大队长,这位阿里 P10 有点“特别”!

    在过去几十年中,计算机行业一直被视为男性主导,这样的传统偏见,不仅困住了大众广泛的认知,更困住了许多女性的手脚. 好在,总有一群人不畏世俗.打破枷锁,她们用自己的努力和才华,让我们相信:在这个快速发展 ...

  7. 阿里如何做好双11技术保障?大队长霜波分享4点经验(转自阿里技术)

    阿里妹导读:为什么说双11是阿里每年技术保障稳定性最困难的一次?50多个BU一起加入双11,怎么组织和运营?为了保障双11的顺利进行,又有哪些备战方案以及创新技术?在由阿里云CIO学院主办的[2020 ...

  8. 淘宝双11大数据分析(数据准备篇)

    文章目录 前言 数据内容分析 `user_log.csv`文件内容含义 `train.csv` 和 `test.csv` 文件内容含义 数据上传到Linux系统并解压 数据集的预处理 文件信息截取 导 ...

  9. 双11,为什么说是一场由中国人忽悠中国人的购物狂欢节?

    双11的跳楼价,也许是最大的优惠谎言! 双11的便宜可能只是感觉上的便宜! 我们以上一年为例,2017年参加双11的产品中,在2016年双11的时候为全年最低价的只有17.17%,不是该商品的历史最低 ...

最新文章

  1. PCA、碎石图、PCA+正确的维度个数、增量PCA(IncrementalPCA)、随机PCA(Randomized PCA)、KernelPCA
  2. RocketMQ部署安装注意事项
  3. HTTP缓存与Spring示例
  4. devstack mysql_DevStack部署OpenStack开发环境 - 问题总结
  5. RC充放电网络的定量计算
  6. Linux系统安全保护措施
  7. Android 数字动画
  8. linux怎么安装网卡驱动固件,Linux网卡驱动的安装方式
  9. 微信 8.0 「裂开」「炸弹」的特效代码
  10. MessageBox用法大全
  11. MOEA/D 算法详解
  12. html网页制作代码大全表白 html表白代码大全可复制,浪漫的html表白特效网页制作源代码
  13. JS中的this是什么,this的四种用法
  14. ewebeditor编辑器解析漏洞
  15. SQlite3基本用法,使用sublime编辑器
  16. chrome访问淘宝和京东崩溃,解决方法
  17. 聚光灯下的熊猫TV技术架构演进
  18. the little scheme Y-combinator
  19. 应用QQ2440(s3c2440)ARM开发板驱动MMA7455加速度计的linux设备驱动编写
  20. 数学三大核心领域概述:代数

热门文章

  1. VM虚拟机虚拟网卡设置和Linux网卡配置
  2. “智能制造”拍了拍“工业互联网”,哪些技术领域需要关注?
  3. linux fsck命令,linux fsck 命令详解
  4. jzoj5662 [GDOI2018Day1模拟4.17]尺树寸泓
  5. 惠普系列原厂系统恢复原机win10win11
  6. 开源MFC微信机器人助手
  7. win10电脑开机突然变慢的原因及解决方法
  8. 7款最新红包封面来了,定好闹钟领取!
  9. 【Unity Shader】自定义顶点片元着色器解析
  10. 外贸人需要知道的销售技巧有哪些?