java记录pv,计算500万PV/每天的网站

Refer to:http://elf8848.iteye.com/blog/967049

你想建设一个能承受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(每秒事务数)

-----------------------------------------------------

Silence, the way to avoid many problems;

Smile, the way to solve many problems;

posted on 2013-05-04 16:00 Chan Chen 阅读(1214) 评论(0)  编辑  收藏 所属分类: Architecture

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

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

相关文章

vlookup两个条件匹配_vlookup,你还是只会基础的单条件查找?

很多数据分析师在简历上都会说自己熟悉excel,但熟练使用excel必须要掌握的核心函数vlookup首当其冲,其次是sumifs、match、index等等。就算熟悉vlookup,很多人也只会基础的单条件查找,其实在工作中能用到vlookup的地方有很多&…

matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...

如何打开simulink:启动simulink:先打开MATLAB软件界面第一步打开simulink第二步在command windows输入 simulink然后enter,等待有很多模块库第三步:常用的simulink库打开以后会看到simulink library browser这个界面最常用的就是s…

后盾网php多少钱_商标转让做公证花多少钱-购店网

当别人对您的商标感兴趣,或者您想买属于自己的商标时,转让商标是个好主意。但不了解商标转让流程的朋友,可能会担心自己对商标公证书的作用缺乏了解。所以今天我们给大家介绍一下什么是商标转让公证的用途,具体什么是商标公证。想…

MATLAB求线性代数的参数范围,MATLAB科学计算04(线性代数问题求解一)

文章目录特殊矩阵矩阵的基本概念求解线性方程组直接求解判定求解特殊矩阵零矩阵、1矩阵及单位矩阵生成nxn方阵:Azeros(n), Bones(n), Ceye(n)生成mxn矩阵:Azeros(m,n), Bones(m,n), Ceye(m,n)生成和矩阵B同样位数的矩阵:Azeros(size(B))**生成…

wsl 重启_漫谈在Windows Server 2019中安装使用WSL

熟悉IT历史的朋友一定不会忘记98蓝屏事件:时任微软CEO的比尔盖茨和助理 Chris Capossela在1998年春季计算机分销商展会(COMDEX )现场演示Windows 98的“即插即用”(plug-and-play)新特性时,经历了演示计算机…

matlab fbb,[求助]请教如何将modelsim仿真的输出结果导入到matlab中分析

matlab可以与modelsim联合在线仿真使用matlab生成激励源,使用modelsim来仿真vhd功能,然后matlab分析结果贴一点代码吧:fdo文件内容################################################################# compiling libraryvlib workvcom -expl…

uniapp 输入框防抖节流_拉动一下控制台大小,后台请求数量爆炸,竟是没做好防抖与节流...

点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章文章很好,耐心阅读,记得点赞和关注哦~前言最近有个朋友在面试过程中遇到一个问题:什么是防抖和节流?糟了,这可触碰到我的知识盲…

linux matlab runtime,linux 环境 MATLAB Runtime 安装

安装 MUTsigcv 软件时需要用到MATLAB环境,安装过程如下:环境下载:https://ww2.mathworks.cn/products/compiler/matlab-runtime.html安装帮助:https://ww2.mathworks.cn/help/compiler/install-the-matlab-runtime.html下载安装软…

智能车辆手册 pdf_SIMULINK在虚拟车辆开发方面的应用

获得pdf全文&#xff0c;朋友圈集赞30个好书推荐&#xff1a;1. Radar: 《雷达手册》<推荐理由&#xff1a;中译本在原著的基础上增加了缩略语词汇总表等5个附录&#xff0c;便于读者查阅。原著是集合当今世界雷达各方面造诣最深的专家、学者编撰而成的&#xff0c;受到全世…

无限极 php算法,无限极分类算法,对你一定有帮助

无限级分类是开发中常见的情况,也经常会在面试&#xff0c;主考官问到&#xff0c;笔试中遇到&#xff0c;因此本文对常见的无限极分类算法进行总结归纳&#xff0c;其实大多数就是迭代与递归。1.循环迭代实现$arr [1>[id>1,name>父1,father>NULL],2>[id>2,…

pmp中ram和raci的区别_【PMP知识点总结】采购流程、采购合同的类型、采购合同的条款...

PMP考试的内容&#xff0c;围绕着《PMBOK》开展。《PMBOK》第六版第一部分的第十二章【项目采购管理】&#xff0c;有两个三个高频知识点&#xff08;采购流程和采购合同、索赔&#xff09;。在PMP考试里&#xff0c;通常项目经理是甲方的项目经理&#xff0c;是甲方爸爸&#…

php issign为false,支付宝接口集成及错误排除

我集成了支付宝接口&#xff0c;可以支付成功&#xff0c;可是notify_url.php中始终好像没有回调&#xff0c;所以按照官方文档&#xff0c;我作了以下修改php$verify_result $alipayNotify->verifyNotify();if($verify_result) {//商户订单号$order_id $_POST[out_trade_…

查看队列深度_不为人知的网络编程(十一):从底层入手,深度分析TCP连接耗时的秘密...

“ 本文作者张彦飞&#xff0c;原题“聊聊TCP连接耗时的那些事儿”&#xff0c;本次收录已征得作者同意&#xff0c;转载请联系作者。即时通讯网收录时有少许改动。本文已同步发布于52im社区&#xff1a;http://www.52im.net/thread-3265-1-1.html(1、引言对于基于互联网的通信…

perl python ruby_perl,lua,python,ruby的对比(3) -- lambda,closure,proper tail function call

今天的题目是函数&#xff0c;先看一下匿名函数。Perl里是这样的$f sub{ return $_[0]$_[1]$_[2];};print &$f(1,2,3)."\n";lua里是这样的f function(x,y,z) return xyz endprint (f(1,2,3))python里使用了lambda概念&#xff0c;实现是这样的&#xff0c;也可…

oracle将一个表数据更新时间,Oracle批量更新,将一个表的数据批量更新另一表

【问题】现在有两个千万级别的结构相同数据不同数据表T_SMS_PHONENO(目的表)&#xff0c;T_SMS_PHONENO2(源表)&#xff0c;根据源表数据更新目的表的数据。【分析】根据经验&#xff0c;更新方法一般有以下几种&#xff1a;1、直接update。update T_SMS_PHONENO T Set T.NA…

几级工作台做石头高墙_创造与魔法:建筑新手入门攻略,家园建材怎么做

hello大家好&#xff0c;又见面啦&#xff0c;我是创造与魔法郁金香建筑团的建筑师&#xff0c;九梨梨众所周知&#xff0c;我是一个热衷于出各类建筑案例的人&#xff0c;玩创魔两年多&#xff0c;做了好几十个不同款式的家园吧。其实创魔这个游戏&#xff0c;建筑只是其中一个…

oracle vitu,Supply Chain Management (SCM) a Manufacturing | Oracle Česká Republika

Nebyly nalezeny ždn vsledkyVašemu vyhledvn neodpovdaj ždn vsledky.Abyste našli to, co hledte, doporučujeme vyzkoušet nsledujc postup:Zkontrolujte pravopis vašich klčovch slov ve vyhledvn.Použijte synonyma pro klčov slovo, kter jste zadali, napřk…

python程序文件是什么_.py文件是什么?

展开全部.py文件是python的脚本文件。Python在执行时&#xff0c;首先会将.py文件中的62616964757a686964616fe59b9ee7ad9431333431363039源代码编译成Python的byte code(字节码)&#xff0c;然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机…

oracle12 快照保存时间,【AWR】调整AWR数据采样时间间隔及历史快照保留时间

1.AWR默认的采样间隔和历史快照保留时间默认是保留七天&#xff0c;采集间隔是1小时&#xff0c;这个信息可以从DBA_HIST_WR_CONTROL视图中获得。sysora10g> col SNAP_INTERVAL for a20sysora10g> col RETENTION for a20sysora10g> select * from dba_hist_wr_control…

两步路轨迹文件位置_最新Uber ATG的轨迹预测方法LiRaNet介绍

arXiv今年10月刚刚上传论文“LiRaNet: End-to-End Trajectory Prediction using Spatio-Temporal Radar Fusion“。其特色在于&#xff0c;除了激光雷达和HD Map之外&#xff0c;该轨迹预测方法采用了雷达传感器的信息。雷达和激光雷达融合是有挑战性的&#xff0c;因为前者的低…