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 07 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
PHP上传文件及图片到七牛的方法
Jul 25 PHP
PHP基于ip2long实现IP转换整形
Dec 11 PHP
windows系统php环境安装swoole具体步骤
Mar 04 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
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
项目实践之javascript技巧
2007/12/06 Javascript
javascript 有趣而诡异的数组
2009/04/06 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
pandas通过loc生成新的列方法
2018/11/28 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
如何利用python生成MD5并去重
2020/12/07 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
公司董事长职责
2013/12/12 职场文书
倡议书格式模板
2014/05/13 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
小孩不笨观后感
2015/06/03 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
工作建议书范文
2019/07/08 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书