如何估算网站日承受最大访问PV(ip和uv)

2023-11-01 07:40

本文主要是介绍如何估算网站日承受最大访问PV(ip和uv),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

 

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

多数情况只计算网站日最大访问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.cnblogs.com/zhengah/

这篇关于如何估算网站日承受最大访问PV(ip和uv)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/321511

相关文章

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.