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 相关文章推荐
解决中英文字符串长度问题函数
Jan 16 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
php中var_export与var_dump的区别分析
Aug 21 PHP
header导出Excel应用示例
Jan 24 PHP
PHP安装memcached扩展笔记
May 28 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
Jun 23 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
php json转换相关知识(小结)
Dec 21 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
PHP Swoole异步MySQL客户端实现方法示例
Oct 24 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
THINKPHP内容分页代码分享
2015/01/14 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python 识别图片中的文字信息方法
2018/05/10 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
python递归法解决棋盘分割问题
2019/07/17 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
师范生实习的个人自我鉴定
2013/10/20 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
股东大会通知
2015/04/24 职场文书