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五种设计模式小结
Mar 23 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
php导出CSV抽象类实例
Sep 24 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
PHP共享内存用法实例分析
Feb 12 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 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
script标签属性type与language使用选择
2012/12/02 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
js实现日历的简单算法
2017/01/24 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
vue-cli如何添加less 以及sass
2017/07/06 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
ES6 十大特性简介
2020/12/09 Javascript
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
python字符串反转的四种方法详解
2019/12/02 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
德国网上宠物店:Zoobio
2018/05/23 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
介绍一下UNIX启动过程
2013/11/14 面试题
优秀教师的感人事迹
2014/02/04 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
战略合作协议书范本
2014/04/18 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
工作收入证明模板
2015/06/12 职场文书
公司备用金管理制度
2015/08/04 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
离婚协议书格式范本
2016/03/18 职场文书
二年级作文之动物作文
2019/11/13 职场文书