每个老板或客户都会问架构师这个问题. 你设计的网站能承受多大的日访问量. 程序员都会拍胸脯说出一个心理最大数字.说的时候很有信心.其实这个数字大多是猜的.作为一个理性的程序员怎么能用猜呢? 这里就介绍如何计算网站能承受的最高日访问数.

一. 我们得先做测试确认基本数据.

多数情况只计算网站日最大访问pv数,而不是ip或uv(用户访问次数).因为对大多数网站来说,相同pv下无论多少IP造成的访问压力是一样的.

造成服务器压力的访问多是对动态页面的请求,因为这些页面需要读写数据库或做更复杂的即时计算.我们的先做实验确定网站动态页面每秒访问成功响应数和每个请求响应时长. 对于网站来说,多数情况响应时长最多不能超过0.6s.否则用户会感到很慢.理想的情况是0.3s以内. 这个结果可以在网站开发完成后用测试工具获得. 例如我用jmeter工具测试我笔记本上的网站得出如下结果:

上图表明此网站部署. 每秒响应241.7个请求,每个请求平均响应时间为0.081s, 超过90的响应大于0.121s, 其中最长的响应请求时长为0.701s. 我们就以此值为最大测试结果来计算整天此网站能承受的访问PV

二. 计算方法和计算缘由.

根据以上测试结果得知每秒的合理请求相应数约241.7个. 由于每日小时访问数并不均衡,所以我们需要知道每日24小时的每小时流量占日总流量比例和小时最高访问压力. 假设通过其他的类似站点日流量统计得知,此类站点访问压力最大的时间是晚上21点.此时访问流量占了日总PV的33%. 由于统计站点能统计到的最小尺度为小时,而我们的本地测试尺度是秒. 很显然一个小时内每秒的流量也是不均衡的. 所以我们这里要估计晚上21点中最大访问秒的请求数.按照经验可以估计为 “小时pv/3600秒*3″ 也就是把21点的请求按平均分配到每秒.并且把三倍每秒请求作为日最高的秒请求数. 注意不同的站点这个常量是不一样的. 具体要根据实际业务估算(有些网站例如定时发售什么的这么计算就明显不合适). 对于大部分企业站点来说常量3是可行的.

好了,现在我们知道了本地测试的每秒最大访问,也知道了高烽小时占日访问百分比,也知道了高峰秒的估算值.要计算日最大访问就很容易了.以上估算为例, 日最大访问:

PV = 241.7 ÷ 3 × 3600 ÷ 0.33 ≈ 878909

日最大可承受87.9万pv. 按多数情况的每Ip访问7-10页计算,日可承受IP:10万左右.

三. 可能的意外和需要注意的事项.

  1. 在真实网站项目中存在多个动态网页. 在本地压力测试时,需要模仿真实访问比例测试多个动态页并且合计出每秒最大压力pv结果,此结果取值于最慢的动态页(千万注意不是取平均值). 模拟真实动态页面访问比例测试以尽可能做到准确. 在这里要多参考已有同类型站点的页面访问统计结果.
  2. 网站中往往还存在img,js,css等等其他文件访问,这个也会拖慢服务器响应.做模拟测试时要考虑进去.当然还要考虑带宽问题(对于多数动态页面来说带宽不是瓶颈).
  3. 日最高峰小时的秒高峰倍率估算,不同类型的网站根据其业务不同有变化,有两个办法可以解决,一靠长期的观察估算倍率. 二是最好给测试结果留更多的余量以应付突发访问压力增大的情况.毕竟这个计算测试值是理论极限,超过此极限性能会急剧下降.
  4. 对于动态页面来说,一但某个请求程序出错会极大延长响应时间,做压力估算时也要为此留出余量.
  5. 其实在一年中不同的日访问流量也是不同的,节假日流量甚至可以达到平日的两倍或更多.为了网站访问稳定,最好以年最大日访问并且预留30%压力.

http://www.shizhuolin.com/20140530/543.html

如何估算网站日承受最大访问PV的更多相关文章

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

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

  2. 你想建设一个能承受500万PV/每天的网站吗?

    (如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 你想建设一个能承受500万P ...

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

    作者:赵磊 博客:http://elf8848.iteye.com 你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢? PV是什么 ...

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

    假如想要建设一个能承受500万PV/每天的网站,服务器每秒要处理多少个请求才能应对?如何计算? 1.PV是什么:PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个 ...

  5. 建设一个能承受500万PV/每天的网站如果计算?

    PV是什么: PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv. 计算模型: 每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60 ...

  6. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

  7. 使用iptables防火墙限制web的访问PV

    使用iptables防火墙限制web的访问PV #!/bin/bash while true;do awk '{print $1}' /tmp/test/access.log| grep -v &qu ...

  8. 大型php网站性能和并发访问优化方案(转载自php中文网)

               网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎 ...

  9. .net网站上传图片换电脑不显示 当不用网站的IP地址访问图片,只用相对路径访问时,在发布网站的时候,将上传图片的目标文件夹,包含在项目中再发布即可。

    .net网站上传图片换电脑不显示 当不用网站的IP地址访问图片,只用相对路径访问时,在发布网站的时候,将上传图片的目标文件夹,包含在项目中再发布即可.

随机推荐

  1. JAVA实现的截屏程序

    http://hadeslee.iteye.com/blog/125386 http://www.jb51.net/article/75114.htm JAVA截屏程序(第三版) JavaEXTSwi ...

  2. 未在本地计算机上注册“Microsoft.Ace.OleDB.12.0”

    这是异常 我的电脑室x86的所以选择x86.

  3. PHP 领域逻辑与数据库映射

    http://blog.csdn.net/hguisu/article/details/7569968

  4. HDU 5616 Jam's balance

    背包.dp[i]=1表示i这种差值能被组合出来,差值有负数,所以用sum表示0,0表示-sum,2*sum表示sum. 询问X的时候,只需看dp[sum+X]或者dp[sum-X]是否有一个为1,注意 ...

  5. Linux挂在ntfs格式的U盘

    工作中遇到linux系统 Red Hat Enterprise5.7 挂载希捷ntfs格式移动硬盘,会跳出一个ERROR提示框:The volume ‘EAGET-NQH’user the ntfs ...

  6. [iOS] 响应式编程开发-ReactiveCocoa(二)

    RAC实现图片下载功能 在实现异步RAC下载图片的过程中,需要注意以下几点: • 通过 NSURLConnection 对象的 +(RACSignal *)rac_sendAsynchronousRe ...

  7. fedora安装各种应用软件

    1 安装视频播放器 sudo yum install mplayer mplayer-gui 可以从命令行 和 gnome 中启动 2 音量调节 (1)使用 alsamixer alsamixer是一 ...

  8. fedora 挂载 小米手机 (估计其它android设备也是类似操作)

    1 参考ubuntu挂载 在Ubuntu挂载使用MTP设备步骤如下: 1.将MTP设备连接至PC机 2.如果是第一次使用MTP设备需要安装以下软件,否则可以跳过此步骤: $ sudo apt-get ...

  9. WIFI机器人网

    WIFI机器人网 WIFI智能小车机器人 外网远程控制WIFI智能小车机器人(WIFI板/703N)

  10. linux之scp

    传输文件夹 scp -r -P 目标端口号 文件夹名 目标用户名@目标服务器地址:目标存放地址 传输文件夹 scp -P 目标端口号 文件名 目标用户名@目标服务器地址:目标存放地址