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获取远程图片并把它保存到本地的代码
Apr 07 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
深入PHP数据加密详解
Jun 18 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
php xhprof使用实例详解
Apr 15 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 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 快速生成 Flash 动画的方法
2007/03/06 PHP
php 生成文字png图片的代码
2011/04/17 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
php实现json编码的方法
2015/07/30 PHP
php常量详细解析
2015/10/27 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
vue3实现v-model原理详解
2019/10/09 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
利用python获得时间的实例说明
2013/03/25 Python
使用Python发送各种形式的邮件的方法汇总
2015/11/09 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python中format()格式输出全解
2019/04/12 Python
python 字符串追加实例
2019/07/20 Python
django model object序列化实例
2020/03/13 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
python爬取代理ip的示例
2020/12/18 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
农行实习自我鉴定
2013/09/22 职场文书
高中语文教学反思
2014/01/16 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS