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 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
将OICQ数据转成MYSQL数据
Oct 09 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
测试PHP连接MYSQL成功与否的代码
Aug 16 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
Yii配置文件用法详解
Dec 04 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 PHP
PHP实现的curl批量请求操作示例
Jun 06 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
原生js生成图片验证码
2020/10/11 Javascript
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
解决python报错MemoryError的问题
2018/06/26 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
Django之PopUp的具体实现方法
2019/08/31 Python
python中树与树的表示知识点总结
2019/09/14 Python
python实现根据文件格式分类
2019/10/31 Python
广告设计专业自荐信范文
2013/11/14 职场文书
中学自我评价
2014/01/31 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
教师节联欢会主持词
2015/07/04 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers