你想建设一个能承受500万PV/每天的网站吗?如果计算呢?

news/2024/5/13 14:23:01/文章来源:https://blog.csdn.net/liangyixin19800304/article/details/17185535

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   如果请求是均匀分布的,需要5M640K字节带宽(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,每秒处理的请求数
详见:
http://blog.chinaunix.net/u3/108043/showart_2260477.html

分享到:

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

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

相关文章

css php 网站设计,HTML,CSS,PHP和JavaScript –网站设计

网站设计的支柱一直以来,软件工程都是艺术与科学的融合。计算机的发展见证了许多编程语言的发展。大量的Web编程语言尤其会使新手感到困惑。如果您是新手,则不必担心,因为本文将告诉您构建美观且功能强大的网站所需的语言。HTML和CSSHTML代表…

非分页缓冲池内存不足 Httperr.log 文件中记录消息和Connections_refused 网站不能打开

非分页缓冲池内存不足 Httperr.log 文件中记录消息和"Connections_refused" 问题描述: server2003的iis 运行一段时间后莫名其妙的就不能打开了?然后重启iis都不行,然后重新注册iis以及重启服务器就恢复了 解决方案:…

10分钟建个人网站 - Amazon Lightsail

终于决定开始创建自己的个人网站。我在这方面的经验和知识,几乎为零。因此。还是主要靠Google和别人的文章做指导。鼓捣了一会儿,成功了,为各位朋友总结一下。也算是我的第一篇博文。 目标:建一个非常简单的,朴素的个…

分享一个学习php的网站

http://www.phptherightway.com/

用加密锁实现网站身份认证

精锐5加密锁身份认证方案简介 精锐5 身份认证“组件”(Virbox WebServer),是一个运行在用户计算机的本地 Web 服务(不需要访问互联网),提供 Web 接口访问精锐5加密锁,B/S 架构的 Web 应用只需在…

SpringBoot业务网站集成企业微信扫码登录实战-保姆级指导教程

TL;DR; Show you the code: WeComScanToLoginDemo 最近遇到需要集成企业微信扫码登录的需求,看了企业微信提供的说明文档 ,看了很多博客感觉讲得都不够详细,所以打算结合代码和自己的配置经历提供一篇保姆级的企业微信扫码登录教程。 交互时…

个人小破网站从无到有的过程python-flask-mysql

最终界面 先看下效果,UI有些简陋,内容有些low,不过网站是从无到有了,功能目的会以后学习再修改! 服务器网站开发 python-flask框架很容易上手,导入模块,几行代码即可实现访问!如…

购物车网站的自定义框架实现

首先要收一下这个自定义框架,是别人实现的,适合初学者使用,仿照Struts的框架原理,将servlet的访问通过类反射全部封装了,不需要向上一个图书管理项目那样写servlet了,框架就是源码里org包下的内容&#xff…

ssh2项目之自己想的购物网站

想着把零碎的整理一下,合成一个完整的,虽然做完还是很简陋的项目 哎呀,这样一个小练手的项目,我居然做了七天,天哪,先大概回想一下有哪些需求 工具:tomcat /weblogic myeclipse mysql 数据…

学习笔记--HIVE网站日志统计分析

前言 本次实践的目的是结合之前所学flume、hadoop、hive几个主要技术,完成一个小案例。 目标: 统计出独立ip数量 统计一个ip使用的header数量 访问最多的url链接 每个ip常访问的url 单日每小时访问量折线图 准备 安装并配置好flume、hadoop、hive hiv…

站长利器site24x7(网站监视器)

俗话说工欲善其事必先利其器,今天发现的这个小网站确实帮了不小的忙,特别是对于那些整天都需要跟好几个网站打交道的站长来说,有了这个小工具,以后您只在轻轻一点收email,一切情况搞定.1、首先进去网站:http://site24x7.com,点击“Sign Up”. 如下图&…

node.js 建站学习日记(一)

打算用腾讯云做一个node.js 第一天先想好选用技术为node.jsmongodb,mongodb中的nosql(非关系型数据库)更加适合处理大数据,是时代趋势吧 windows下node.js的配置相当简单。。在官网下一个安装包,直接安装就好了,连环…

css常用布局网站。

http://www.intensivstation.ch/en/templates/ 常用的两栏,三栏布局都有,基于XHTML 1.0 and CSS2. http://www.oswd.org/ 免费模板 http://www.ibm.com/developerworks/cn/web/wa-freeweb/ 获取 Web 设计的免费资源 介绍了很多资源。

高亮代码的在线网站。

http://www.andre-simon.de/doku/highlight/en/highlight_demo.html 另外还有Bin程序,支持linux ,unix mac ,win.

php wind8.5,通用型建站软件phpwind 8.5正式版发布

随着互联网的快速发展,电子商务、团购、微博、LBS、SNS等新的互联网形式发展如火如荼,广大站长们如何应对新的挑战把握新的机会呢?相信今天刚刚发布的phpwind 8.5能为你带来帮助。phpwind 8.5在原有论坛、门户、个人中心、群组等社会化网络应…

大型网站的分布式事务

我们都熟悉mysql事务,它保证要么全做,要么全不做。但是对于一个大型系统来说,mysql一般会分库分表,多物理机部署,同时业务逻辑更加复杂漫长,同时需要调用很多服务(SOA)。 因此可以想象,在一个处…

VS2012 未能将网站XXX配置为使用ASP.NET 4.5.为了使此网站正确运行.你必须将它手动配置为使用ASP.NET 4.5

前言: 今天刚开始牛腩在建网站的时候VS出现了这个问题 经过:在网上查了半天也没看懂,但是找到了一个解决方法就是下载一个补丁文件连接如下: http://download.microsoft.com/download/A/0/2/A02C37E0-77F7-448A-BD5C-F66AB1F78D…

VS2012 未能将网站XXX配置为使用ASP.NET 4.5.为了使此网站正确运行,您必须将它手动配置为ASP.NET 4.5

前言 最近刚开始敲牛腩,在新建Web项目的时候出现了如下图的提示 原因 是因为咱们却了一些组件 解决措施 进入微软官网下载缺少的组件并安装 点击进入官网 具体的下载内容如下图 总结:当解决一个问题之后,心情是及其舒畅的,方…

个人网站搭建(1)

最近一直想这搭建一个个人网站,在网上参考了好多资料,在网上找到了一个网站的基本结构图: MVC 模式是一个非常好的软件架构模式,在网站开发中,也常常要求遵守这个模式。 MVC 模式(Model-View-Controlle…

个人网站搭建(3)

连接数据库 首先安装mysql数据库。ubuntu可以使用命令:sudo apt-get install mysql-server安装。安装后运行:service mysqld start。 安装 Python-MySQLdb 命令: #sudo apt-get install build-essential Python-dev libmysqlclient-dev …