`

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

阅读更多

 

作者:赵磊

博客:http://elf8848.iteye.com

 

你想建设一个能承受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

分享到:
评论
9 楼 liujiahan629 2014-08-17  
学习学习!
8 楼 xiaxingwork 2014-05-04  
网络带宽计算时为什么不用已有的算法呢?

115.7个请求/秒 *2倍=231.4个请求/秒
115.7个请求/秒 *3倍=347.1个请求/秒
23.1个请求/秒 *2倍=46.2个请求/秒
23.1个请求/秒 *3倍=69.3个请求/秒
7 楼 jackrui2010 2014-02-01  
存。
2、机械硬盘或SSD硬盘的读就是比写快。
---------------------------------------------------------------------------------------  受教了
6 楼 沉默的水 2013-11-26  
PV值,对于同一人对相同页面的重复浏览在每天只计作一次。
5 楼 fanlianwei 2013-06-06  
不错的文章
4 楼 coldrush 2013-03-05  
受教了,以前总是不知道这些个 东西如何算出来的,现在很明了了...
3 楼 kiaonly 2012-11-30  
给力的大牛。做android应用推送服务器的中间层:SpringMVC和Servlet哪个比较合适?
并发不是很大,但是对响应时间要很快。
2 楼 elf8848 2012-09-06  
zhoupuyue 写道
500PV,(80%*500万)/(24小时*60分*60秒*40%)=115。

谢谢你的提醒,我已修正。
1 楼 zhoupuyue 2012-09-04  
500PV,(80%*500万)/(24小时*60分*60秒*40%)=115。

相关推荐

    PDFBox 處理,分拆內容

    PDFBox是Apache软件基金会的一个开源Java库,专门用于处理PDF(Portable Document Format)文档。它提供了丰富的API,允许开发者对PDF文档进行各种操作,包括读取、创建、修改、签署以及提取文本和图像等。在这个...

    屌丝程序员如何打造日PV百万的网站架构

    屌丝程序员如何打造日PV百万的网站架构

    太阳能PV_T系统电热输出性能及其Matlab仿真研究.pdf

    太阳能光伏/热(PV/T)系统是一种将光伏电池产生的电能与热量结合起来的复合型能源转换设备。这种系统的创新之处在于通过一个集成设备将太阳能的光热和光电转换结合在一起,从而提升太阳能的整体利用效率。 在介绍...

    计算机操作系统中PV操作

    使用PV操作,可以避免死锁,确保至少有一个哲学家能吃饭。 2. **生产者-消费者问题**:生产者将产品放入缓冲区,消费者从缓冲区取出产品。通过PV操作,可以确保在缓冲区满时生产者不会继续生产,而在缓冲区空时消费...

    7.rar_HYBRID MPPT_PMSG wind_pv with grid _pv/wind_wind pv

    标题中的“7.rar_HYBRID MPPT_PMSG wind_pv with grid _pv/wind_wind pv”揭示了我们讨论的主题是关于一个混合能源系统,该系统整合了风能和光伏(太阳能)发电,并且与电网连接。其中,MPPT代表最大功率点跟踪...

    计算机_操作系统_经典PV操作全集

    设计一种基于PV操作的方法来保证顾客能顺利进行交易。 **二、真经之生产消费问题扩展**(浙江大学2001):在标准的生产者-消费者问题的基础上,增加对优先级的支持,使得某些生产者或消费者具有更高的优先级。 **...

    潮流计算中PV-PQ节点转换逻辑的研究

    在潮流计算中,如果PV-PQ节点类型的识别出现错误,将会导致计算结果发散,这实际上是一种电压不稳定的体现,对应于所谓的“约束诱导型电压崩溃”。这种情况下的电压崩溃是由系统的约束条件引起的,而非系统本身的...

    详解NGINX如何统计网站的PV、UV、独立IP

    做网站的都知道,平常经常要查询下网站PV、UV等网站的访问数据,当然如果网站做了CDN的话,nginx本地的日志就没什么意义了,下面就对nginx网站的日志访问数据做下统计; 概念: UV(Unique Visitor):独立访客,将...

    Panasonic Camera pv500手册

    ### Panasonic Camera PV500 手册解析 #### 超高速视觉系统 **松下智能相机PV500**是一款专为工厂自动化(FA)领域设计的图像处理装置,其核心优势在于能够提供高速、高精度且高效的图像处理能力。此款相机不仅...

    flink 网站访问量pv 独立访客数uv 计算

    以下是一个简单的Flink PV计算流程: 1. 定义源函数:创建一个SourceFunction,用于读取网站访问日志数据,这些数据通常包含时间戳、用户ID、访问页面等信息。 2. 数据转换:将接收到的事件数据转换为包含必要字段...

    JAVA 统计网站的访问量PV,UV

    在网站分析中,PV(Page View)和UV(Unique Visitor)是两个非常关键的指标,它们用于衡量网站的流量和用户活动。这篇文章将详细介绍如何使用Java来统计网站的访问量,包括PV和UV的计算方法。 PV(页面浏览量)是...

    res.rar_PV hybrid_PV/Wind/Battery_fuzzy battery matlab_pv wind a

    Hybrid PV-wind generation shows higher availability as compared to PV or wind alone. For rural electrifications, researches are focused on hybrid power system which provides sustainable power. The ...

    PV_Array.zip_PV array模块_pv array 仿真_pv arraymatlab_光伏特性_光伏电池

    标题中的“PV_Array.zip”是一个压缩包文件,包含与光伏(Photovoltaic,简称PV)系统相关的材料,特别是关于“PV array”的建模和仿真。"PV array"指的是由多个光伏电池串联或并联组成的光伏阵列,是太阳能发电系统...

    网站模拟访问机,模拟网站访问增加网站pv流量

    本程序是一款通过模拟IE访问来增加网站的pv流量,并通过模拟百度和谷歌的关键字搜索来增加网站的搜索排名及网站收录。 特点: 1、采用代理IP的真实访问模拟,适应各种统计软件; 2、模拟访问速度根据时段智能控制,...

    pv.rar_matlab pv_pv_pv array matlab_pv-simulink

    标题中的“pv.rar_matlab pv_pv_pv array matlab_pv-simulink”暗示了这是一个与光伏(PV)系统相关的MATLAB和Simulink项目。描述提到的“pv array simulink model”进一步确认,我们正在处理一个用于模拟光伏阵列的...

    S5PV210 用户手册

    《S5PV210 用户手册》是针对三星公司的一款高性能处理器S5PV210的详尽技术文档。这款处理器基于Cortex-A8内核,拥有1GHz的时钟频率,使其在嵌入式系统领域具有强大的计算能力。本文将深入探讨S5PV210的关键特性、...

    一款网页在线刷网站访客pv和ip的ASP源码

    在本源码中,ASP被用来实现模拟用户访问,增加网站的PV和独立IP计数。 首先,我们要理解PV和IP的基本概念。PV(Page View)是指页面浏览量,每次页面被加载或刷新都算作一次PV。而IP(Internet Protocol)则代表...

    松下图像处理器PV500使用手册.pdf

    《松下图像处理器PV500使用手册》是针对松下图像处理装置PC500的一份详尽指南,旨在帮助用户了解并有效地操作这款设备。该手册涵盖了硬件安装、接线方法以及软件功能和设置程序等多个方面,为用户提供了一个全面的...

Global site tag (gtag.js) - Google Analytics