PHP高并发和大流量解决方案整理


Posted in PHP onDecember 24, 2019

一、高并发的概念

在互联网时代,并发,高并发通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。

二、高并发架构相关概念

1、QPS (每秒查询率) : 每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求)

2、PV(Page View):综合浏览量,即页面浏览量或者点击量,一个访客在24小时内访问的页面数量

--注:同一个人浏览你的网站的同一页面,只记做一次pv

3、吞吐量(fetches/sec) :单位时间内处理的请求数量 (通常由QPS和并发数决定)

4、响应时间:从请求发出到收到响应花费的时间

5、独立访客(UV):一定时间范围内,相同访客多次访问网站,只计算为1个独立访客

6、带宽:计算带宽需关注两个指标,峰值流量和页面的平均大小

7、日网站带宽: PV/统计时间(换算到秒) * 平均页面大小(kb)* 8

三、需要注意点:

1、QPS不等于并发连接数(QPS是每秒HTTP请求数量,并发连接数是系统同时处理的请求数量)

2、峰值每秒请求数(QPS)= (总PV数*80%)/ (六小时秒数*20%)【代表80%的访问量都集中在20%的时间内】

3、压力测试: 测试能承受的最大并发数 以及测试最大承受的QPS值

4、常用的性能测试工具【ab,wrk,httpload,Web Bench,Siege,Apache JMeter】

四、优化

1、当QPS小于50时

优化方案:为一般小型网站,不用考虑优化

2、当QPS达到100时,遇到数据查询瓶颈

优化方案: 数据库缓存层,数据库的负载均衡

3、当QPS达到800时, 遇到带宽瓶颈

优化方案:CDN加速,负载均衡

4、当QPS达到1000时

优化方案: 做html静态缓存

5、当QPS达到2000时

优化方案: 做业务分离,分布式存储

五、高并发解决方案案例:

1、流量优化

防盗链处理(去除恶意请求)

2、前端优化

(1) 减少HTTP请求[将css,js等合并]

(2) 添加异步请求(先不将所有数据都展示给用户,用户触发某个事件,才会异步请求数据)

(3) 启用浏览器缓存和文件压缩

(4) CDN加速

(5) 建立独立的图片服务器(减少I/O)

3、服务端优化

(1) 页面静态化

(2) 并发处理

(3) 队列处理

4、数据库优化

(1) 数据库缓存

(2) 分库分表,分区

(3) 读写分离

(4) 负载均衡

5、web服务器优化

(1) nginx反向代理实现负载均衡

(2) lvs实现负载均衡

扩展内容大家可以参阅:PHP如何解决网站大流量与高并发的问题

以上就是本次介绍的全部相关知识点,更多补充内容可以联系小编。

PHP 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
用php来检测proxy
Oct 09 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
详解PHP数组赋值方法
Nov 07 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
smarty自定义函数用法示例
May 20 PHP
PHP折半(二分)查找算法实例分析
May 12 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
WordPress伪静态规则设置代码实例
Dec 10 PHP
thinkphp5实现微信扫码支付
Dec 23 #PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 #PHP
PHP架构及原理知识点详解
Dec 22 #PHP
Laravel 验证码认证学习记录小结
Dec 20 #PHP
php文件上传原理与实现方法详解
Dec 20 #PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 #PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 #PHP
You might like
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
js style动态设置table高度
2014/10/21 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
带你快速理解javascript中的事件模型
2017/08/14 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
Python subprocess模块学习总结
2014/03/13 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
django 修改server端口号的方法
2018/05/14 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
大学生创业策划书
2014/02/02 职场文书
公司合作意向书范文
2014/07/30 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
优秀教师个人总结
2015/02/11 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书