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 相关文章推荐
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
PHP生成静态页面详解
Dec 05 PHP
PHP 高级课程笔记 面向对象
Jun 21 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 PHP
PHP实现随机发扑克牌
Apr 22 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php购物车实现代码
2011/10/10 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
php设计模式之观察者模式的应用详解
2013/05/21 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
使用symfony命令创建项目的方法
2016/03/17 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python 统计字数的思路详解
2018/05/08 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
如何在django中添加日志功能
2020/02/06 Python
python实现mean-shift聚类算法
2020/06/10 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
资深生产主管自我评价
2013/09/22 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
工作表扬信的范文
2014/01/10 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
文艺晚会开场白
2015/05/29 职场文书
少年犯观后感
2015/06/11 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL