PHP高并发和大流量怎么解决?
PHP高并发和大流量的解决方案
一 高并发的概念
在互联网时代,并发,高并发通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。
二 高并发架构相关概念
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的高并发和大流量的问题
基础知识 TFS : 吞吐量 (吞吐量是指系统在单位时间内处理请求的数量) RT : 响应时间 (从请求发出到收到响应时间) 并发数 : 在一段时间内同时访问站点的用户数 QPS : 每秒查询率 (每 ...
- PHP高并发和大流量的解决方案
第一个要说的就是数据库,首先要有一个很好的架构,查询尽量不用* 避免相关子查询 给经常查询的添加索引 用排序来取代非顺序存取,如果条件允许 ,一般MySQL服务器最好安装在Linux操作系统中 .关于 ...
- php高并发,大流量
一般使用LVS+PHP集群(1000台),就算日均80亿次请求,每秒有10万并发,那分到每台机器的请求只有100个.只要你的PHP程序不是太差,100QPS总没问题吧? 而真正的瓶颈在于数据库和存储系 ...
- php 面试考点总结-高并发和大流量解决方案考点
1.web资源防盗链 盗链概念 盗链是指在自己的页面上展示一些并不在自己服务器的内容 防盗链工作原理 通过referer或者签名,网站可以检测目标网页访问的来源页,一旦检测到来源页不是本站即进行阻止或 ...
- 高并发和大流量解决方案--CND加速
CDN全称 Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节点 ...
- Sqlserver 高并发和大数据存储方案
Sqlserver 高并发和大数据存储方案 随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高! ...
- Web网站架构演变—高并发、大数据
转 Web网站架构演变—高并发.大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系 ...
- LVS解决高并发,大数据量
http://www.360doc.com/content/14/0726/00/11962419_397102114.shtml LVS的全称Linux vitual system,是由目前阿里巴巴 ...
- PHP-高并发和大流量的解决方案
一 高并发的概念在互联网时代,并发,高并发通常是指并发访问.也就是在某个时间点,有多少个访问同时到来. 二 高并发架构相关概念1.QPS (每秒查询率) : 每秒钟请求或者查询的数量,在互联网领域 ...
随机推荐
- Nginx+uWSGI部署flask项目
uwsgi配置 uwsgi安装 安装uwsgi pip install uwsgi 启动uwsgi uwsgin --ini uwsgi.ini # 后台启动 nohup uwsgi --ini uw ...
- Leetocode7道买卖股票问题总结(121+122+123+188+309+901+714)
题目1----121. 买卖股票的最佳时机I: 链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 给定一个数组, ...
- java读取解析application.yml
java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar <!-- properties和yaml格式化 --> ...
- MySQL启动失败故障思路
1.1 查看 日志 默认路径在数据路径下,以当前主机名加上.err命名 如主机名为tz,数据路径为/mnt/mysql_data目录下 日志文件为tz.err [root@tz mysql_data] ...
- jQuery使用ajax跨域请求获取数据
jQuery使用ajax跨域请求获取数据 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的 ...
- Docker学习一篇就够了
Docker 1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像 ...
- arm-linux-gcc
搭建交叉编译环境,即安装.配置交叉编译工具链.在Ubuntu环境下编译出嵌入式Linux系统所需的操作系统.应用程序等,然后再上传到目标机上. 交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构 ...
- 使用在react hooks+antd ListView简单实现移动端长列表功能
import React, { useState, useEffect } from "react" import { ListView } from "antd-mob ...
- 【Node】Webpack调试启动
"start": "webpack-dev-server --port 33333 --content-base ./dist",
- P1010 幂次方(分治)
https://www.luogu.com.cn/problem/P1010 刚刚看到这个题时,有点懵,如果说这是个数学题 比如说7,应该先求出7 = 4 + 2 + 1; 即先分解出里面应该有最多的 ...