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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
关于PHP开发的9条建议
Jul 27 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
Zend Framework创建自己的动作助手详解
Mar 05 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 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
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
python代码如何注释
2020/06/01 Python
DNA测试:Orig3n
2019/03/01 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
经典公益广告词
2014/03/13 职场文书
小学生演讲稿大全
2014/04/25 职场文书
大学英语专业求职信
2014/06/21 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
万能检讨书
2015/01/27 职场文书
财务出纳岗位职责
2015/03/31 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python