你想建设一个能承受500万PV/每天的网站吗?服务器每秒要处理多少个请求才能应对?...

news/2024/5/9 5:33:25/文章来源:https://blog.csdn.net/weixin_34310127/article/details/92540624

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? 

PV是什么:

PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。 

计算模型: 
每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。
其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。24小时的40%是9.6小时,有80%的请求发生一天的9.6个小时当中(很适合互联网的应用,白天请求多,晚上请求少)。 

简单计算的结果:
((80%*500万)/(24小时*60分*60秒*40%))/1 = 115.7个请求/秒 
((80%*100万)/(24小时*60分*60秒*40%))/1 = 23.1个请求/秒 
初步结论: 
现在我们在做压力测试时,就有了标准,如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天。如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。

留足余量:

以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。

115.7个请求/秒 *2倍=231.4个请求/秒

115.7个请求/秒 *3倍=347.1个请求/秒

23.1个请求/秒 *2倍=46.2个请求/秒

23.1个请求/秒 *3倍=69.3个请求/秒

最终结论:

如果你的服务器一秒能处理231.4--347.1个请求/秒,就可以应对平均500万PV/每天。

如果你的服务器一秒能处理46.2--69.3个请求,就可以应对平均100万PV/每天。

说明:

这里说明每秒N个请求,就是QPS。因为我关心的是应用程序处理业务的能力。 

实际经验:

1、根据实际经验,采用两台常规配置的机架式服务器,配置是很常见的配置,例如一个4核CPU+4G内存+服务器SAS硬盘。

2、个人武断的认为在服务器CPU领域Intel的CPU要优于AMD的CPU,有反对的就反对吧,我都说我武断了(请看CPU性能比较),不要太相信AMD的广告,比较CPU性能简单办法就是比价格,不要比频率与核心数,价格相差不多的性能也相差不多。

3、硬盘的性能很重要,由其是数据库服务器。一般的服务器都配1.5万转的SAS硬盘,高级一点的可以配SSD固态硬盘,性能会更好。最最最最重要的指标是“随机读写性能”而不是“顺序读写性能”。(本例还是配置最常见的1.5万转的SAS硬盘吧)

4、一台服务器跑Tomcat运行j2ee程序,一台服务器跑MySQL数据库,程序写的中等水平(这个真的不好量化),是论坛类型的应用(总有回帖,不太容易做缓存,也无法静态化)。

5、以上软硬件情况下,是可以承受100万PV/每天的。(已留有余量应对突然的访问高峰)

注意机房的网络带宽:

有人说以上条件我都满足了,但实际性能还是达不到目标。这时请注意你对外的网络的带宽,在国内服务器便宜但带宽很贵,很可能你在机房是与大家共享一条100M的光纤,实际每个人可分到2M左右带宽。再好一点5M,再好一点双线机房10M独享,这已经很贵了(北京价格)。

一天总流量:每个页面20k字节*100万个页面/1024=19531M字节=19G字节,

19531M/9.6小时=2034M/小时=578K字节/s   如果请求是均匀分布的,需要5M(640K字节)带宽(5Mb=640KB 注意大小写,b是位,B是字节,差了8倍),但所有请求不可能是均匀分布的,当有高峰时5M带宽一定不够,X2倍就是10M带宽。10M带宽基本可以满足要求。

以上是假设每个页面20k字节,基本不包含图片,要是包含图片就更大了,10M带宽也不能满足要求了。你自已计算吧。

(全文完)

附:性能测试基本概念
--------------------------------------------------------------------------------------- 
基本概念: 

Throughput(吞吐量):按照常规理解网络吞吐量表示在单位时间内通过网卡数据量之和,其中即包括本机网卡发送出去的数据量也包括本机网卡接收到的数据量。 一个100Mb(位)的双工网卡,最大发送数据的速度是12.5M字节/s , 最大接收数据的速度是12.5M字节/s, 可以 同时 收发 数据。 
并发用户数:是同时执行操作的用户(线程数)。 
响应时间:从请求发出到收到响应花费的时间 。

QPS - Queries Per Second  每秒处理的查询数(如果是数据库,就相当于读取)
TPS - Transactions Per Second  每秒处理的事务数(如果是数据库,就相当于写入、修改)
IOPS,每秒磁盘进行的I/O操作次数

例如对某个数据库测试,分开两次测QPS与TPS。
QPS(读取)值总是高于TPS(写、改),并且有倍率关系,因为:
1、数据库对查询可能有缓存。
2、机械硬盘或SSD硬盘的读就是比写快。

 
JMeter测试参数说明: 

Label:每一个测试单元的名字。 

#Samples:表示一个测试单元一共发出了多少个请求。 

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间。,不重要。 


Median:中位数,也就是 50% 用户的响应时间,如果把响应时间从小到大顺序排序,那么50%的请求的响应时间在这个范围之内。重要。 

90% Line:90% 用户的响应时间,如果把响应时间从小到大顺序排序,那么90%的请求的响应时间在这个范围之内。重要 。 

Min:最小响应时间,不重要。 

Max:最大响应时间,出现几率只不过是千分之一甚至万分之一,不重要。 

Error%:本次测试中出现错误的请求的数量 

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 

KB/Sec:每秒从服务器端接收 到的数据量(只是接收),相当于LoadRunner中的Throughput/Sec 
------------------------------------------------------------------------------
loadrunner测试参数说明: 

响应时间:
 取90%值,如果把响应时间从小到大顺序排序,那么90%的请求的响应时间在这个范围之内。重要。 

每秒点击数 :hits per Second,每秒钟向服务器提交请求的数量。 

TPS: Transaction per Second ,每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程 

Throughput(吞吐量): Loadrunner记录的Throughput是接收到服务器返回的所有字节数之和,与本地发出的字节数无关。 

Throughput/Sec: 每秒的吞吐量。 

对于BS架构的一般分析 响应时间、点击率、吞吐量、TPS(每秒事务数)。 
对于CS架构的一般分析 TPS(每秒事务数) 

--------------------------------------------------------------------------------------- 
Apache ab测试参数说明: 

RPS:
 Request per Second,每秒处理的请求数 

转载于:https://my.oschina.net/zhangyafei/blog/819451

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[svc][op]网站504无法访问问题处理

504 Gateway Time-out 网站出现了这种情况 架构是:tomcatnginx, 想通过domain.com 跳转到www.domain.com. 客户端访问流程 客户端--dns--cdn---lb—webnode(nginx rewritetomcat) cdn配置 排查问题: nginx查了下没看出啥问题 ping…

Alexa网站排名爬取

Python 话说是一门面向监狱编程的语言,吾等不信,前来尝试。。。。 开玩笑了~ 前一段时间刚接触 Python 的时候,觉得有些不适应,特别是语法显得别扭,后来发现它和golang还是挺像的 同样的包管理调用机制:…

网站请求出现Referrer Policy: no-referrer-when-downgrade的问题

网站请求出现Referrer Policy: no-referrer-when-downgrade的问题 #netstat –nap |grep 443 //查看端口信息#ps –ef |grep nginx //查看nginx是否启动#systemctl status nginx –l //查看nginx 的错误信息一般是跨域的问题 检查nginx的启动是否正常 此次是 https…

prerender-SPA程序的SEO优化策略

随着web2.0的兴起,ajax的时代已经成为了事实,更如今Knockout,backbone, angular,ember前端MDV(model driver view)框架强势而来,Single Page Application已经为大家所熟悉了。如今常见的SPA程序,restfull和前端MDV之类的框架能够实…

Wordpress网站添加七牛云cdn

1.一个搭建好的网站和七牛云账号 2.七牛云进入控制面板 3创建存储空间 4创建好了空间拿七牛给你了测试域名(但只可以使用30天)所以绑定自定义域名(这个必须是备案过的) 5.设置自定义域名(加速域名最好是二级域名&#…

S-CMS企业建站v3几处SQL注入

0x01 前言 有段时间没有发文章了,主要没挖到比较有意思的漏洞点。然后看最近爆了很多关于S-CMS的漏洞,下载了源码简单挖了一下然后给大家分享一下。 0x02 目录 Wap_index.php sql注入Form.php Sql注入Input、query 0x03 插曲 这里分享一下在审计的时候自…

10年生日教大家轻松做一个网站

图片多~暂没时间传过来,如果QQ空间的图片防盗链,请看原文章地址:http://user.qzone.qq.com/296827066/blog/1266877782 去年的生日是教大家煎鸡蛋(http://user.qzone.qq.com/296827066/blog/1233724431),今…

05.net网站开发(设计):2.MVC控制器与视图的简单收发数据

上一节大概了解了MVC的运作方式。这一届发一个简单样例,在网页界面中的文本框输入一个值,在后台控制器中进行接收,然后跳转到另一个页面。一:要发送数据的视图在HomeController中新建一个视图public ActionResult MyView(){return…

06.net网站开发(设计):3.MVC注册强类型

什么是MVV注册强类型呢?其实一开始我也是混乱得不行。这个Model模型比我们写三层创建的Model强大得多,一旦创建之后,系统便可以快速生成常用的视图,包括“列表”、“增删查改”功能这些功能随意选择。配合使用"数据库模型&qu…

08.net网站开发(前端):5.jQuery

开发网站肯定要会JS,嫌代码太难看难学那至少要学会jQuery。当然我见过有些项目纯用服务端控件也是能做出来的,但我相信,那些碰到复杂的需求的话肯定很棘手的。jQuery是对JS和DOM的封装,少量代码直接解决大多兼容性问题。jQuery我是…

09.net网站开发(前端):6.类淘宝组合搜索效果jQuery+Ajax

上一节讲到jQuery,本来还不能这么快就发jQueryAjax的,因为这部分对于新手来说,不是很好理解,但为了配合发我的实习经验,就先贴出来了。新手先有个概念就好,Ajax是为了前端能和后台交互的,它们的…

11.net网站开发(交互):2.MVC 购物车

这一节完了之后,差不多就停止基础知识的更新了。接下来可能要做一个实例项目,用MVC或者传统.NET WEB 还不是很清楚,要做什么项目也还在考虑,反正肯定开源附加完整文档。但我需要它是以完成某种任务的形式,不然真没那么…

30个酷毙的交互式网站(HTML5+CSS3)

很久前就像找些文章来翻译,and这是第一篇,刚开始翻译着很有兴致,但中间就开始累了,感觉好多好多,因为不仅要翻译,还要看网站,还要排版,花了两天空闲时间还是硬着头皮翻译下来了&…

17项目简介与草稿设计(网站开发)

做网站需要的基础技能已经交待得差不多了,接下来就是给出一个项目案例了。想做一个开源的论坛源码,有兴趣的朋友可以一起参与哈,QQ 696619。 本项目简介: 《内部论坛》,为移动设备所开发的论坛,发展重点为…

19网站实现QQ登录功能

一般网站要先做个用户注册的功能页面,但我的网站名气不大,不需要要求用户注册,所以直接使用腾讯QQ登录的API接口。 如何使用JS_SDK让网站拥有QQ登录的功能,官网的这篇文章写得还算完整:http://connect.qq.com/intro/lo…

20快速开发网站项目的工具和方法

本来已经进入“正式开发”的教程部分了,但这次还是要先插入一些“旁门左道”,因为很多时候,我们仅仅只是要演示一个产品概念或者完成一次老师布置的课程设计,那就没必要仔仔细细地敲打每一行代码。像我这学期选修了“高级网页”课…

基于SSH的在线美食点评网站-java在线美食点评网

基于SSH的在线美食点评网站-java在线美食点评网 开发环境:Eclipse for J2EE,MYSQL5.1,JDK1.7,Tomcat 7首页主要展示一些当地美食。(1)用户注册:用户填写注册账号、密码。 (2)用户登录:用户注册成功后,使用注册账号、密码登录。成功…

关于各网站回到顶部的细节功能

对比一下吧,不说话了,很多人学到的皮毛和精髓是完全两码事。先看淘宝:http://item.taobao.com/item.htm?id9134206497&ali_refida3_619362_1007:1102299863:7:46702465U84y78608587678s868v3I:090efd2e7e3bc5c1f468dbe7eeb252b1&ali…