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作的文本留言本的例子(六)
Oct 09 PHP
来自PHP.NET的入门教程
Oct 09 PHP
PHP Session变量不能传送到下一页的解决方法
Nov 27 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
深入PHP中慎用双等于(==)的详解
Jun 06 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
PHP实现递归无限级分类
Oct 22 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 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 和 MYSQL
2006/10/09 PHP
PHP中for循环语句的几种变型
2006/11/26 PHP
php中的一个中文字符串截取函数
2007/02/14 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
php查询ip所在地的方法
2014/12/05 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
php自定义错误处理用法实例
2015/03/20 PHP
iOS10推送通知开发教程
2016/09/19 PHP
javascript dom 操作详解 js加强
2009/07/13 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python获取当前路径实现代码
2017/05/08 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
python实现微信打飞机游戏
2020/03/24 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
如何利用python读取micaps文件详解
2020/10/18 Python
C语言笔试集
2012/07/24 面试题
幼儿园美术教学反思
2014/01/31 职场文书
集体备课反思
2014/02/12 职场文书
西式婚礼主持词
2014/03/13 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
职位说明书范文
2014/05/07 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电