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 相关文章推荐
Php注入点构造代码
Jun 14 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 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
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
python处理json数据中的中文
2014/03/06 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python实现烟花小程序
2019/01/30 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
求职信写作要突出重点
2014/01/01 职场文书
大学毕业感言100字
2014/02/03 职场文书
花店创业计划书范文
2014/02/07 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
员工安全生产承诺书
2014/05/22 职场文书
师德师风的心得体会
2014/09/02 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL