PHP高并发和大流量解决方案整理


Posted in PHP onMarch 09, 2021

一、高并发的概念

在互联网时代,并发,高并发通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。

 

二、高并发架构相关概念

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 相关文章推荐
教你如何把一篇文章按要求分段
Oct 09 PHP
php巧获服务器端信息
Dec 06 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
php变量范围介绍
Oct 15 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
windows7下安装php的php-ssh2扩展教程
Jul 04 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
php中使用array_filter()函数过滤数组实例讲解
Mar 03 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 #PHP
PHP 出现 http500 错误的解决方法
Mar 09 #PHP
PHP 实现链式操作
Mar 09 #PHP
PHP中SESSION过期设置
Mar 09 #PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 #PHP
PHP 实现重载
Mar 09 #PHP
PHP 实现缩略图
Mar 09 #PHP
You might like
用session做客户验证时的注意事项
2006/10/09 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
如何在Python中编写并发程序
2016/02/27 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
python学生信息管理系统
2018/03/13 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
python Opencv将图片转为字符画
2021/02/19 Python
解决DataFrame排序sort的问题
2018/06/07 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
初婚初育证明范本
2014/11/24 职场文书
小马王观后感
2015/06/11 职场文书
生日赠语
2015/06/23 职场文书
Pytorch可视化的几种实现方法
2021/06/10 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技