美文网首页面试复习
PHP如何解决大流量和高并发问题

PHP如何解决大流量和高并发问题

作者: 云三木 | 来源:发表于2020-05-27 21:10 被阅读0次

一、高并发相关概念:

QPS:每秒中请求或查询的数量,在互联网领域指每秒相应请求数(http请求);QPS不等于并发连接数;
并发连接数:系统同时处理的请求数量。
响应时间:从请求发出到收到响应花费的时间。
PV:综合浏览量(Page View),即页面浏览量或点击量,一个访客在24小时内访问的页面数量。
日网站带宽: PV / 统计时间 (换算到秒)* 平均页面大小 (单位KB) * 8;
峰值QPS计算:(总PV数 * 80%) / (6小时秒数 * 20%) = 峰值每秒请求数(QPS);(80%的访问量集中在20%的时间里,6个小时可以看做中午、下午、晚上各两个小时);

二、压力测试

测试能承受的最大并发 和 测试最大承受的QPS值;

常用测试工具:ab,wrk,http_load,Web Bench,Siege,Apache JMeter.
这里使用ab进行测试,ab全称是apache benchmark,是apache官方推出的工具,创建多个并发访问线程,模拟多个访问者同时对一个URL进行访问。

观察被测服务器的CPU,内存,网络等不要超过最高限度的75%;

apache自带ab,也可以使用yum安装:

注意测试机器与被测机器分开
yum -y install http-tools
ab #查看是否安装

开始测试
ab -c 100 -n 10000 https://www.aaa.com/index.php
-c 单次请求100条 
-n 一共10000条

执行结果:截图,


三、QPS等级

QPS达到50

小型网站,一般的服务器可以应付。基本不需要优化

QPS达到100

假设关系型数据库的每次请求在0.01秒内完成,如果单页面只有一个SQL查询,那么100QPS意味着1秒中要完成100次请求,但是此时我们并不能保证数据库查询能完成100次。
方案:数据库层缓存,数据库的负载均衡(没试过)。

QPS达到800

假设我们使用百兆宽带,意味着网站的出口的实际带宽只有8M左右。如果每个页面只有10K,在这个并发条件下,百兆宽带已经吃完。
方案:CDN加速,负载均衡

QPS达到1000

假设使用Mencache做缓存,每个页面对Memcache的请求要远大于对数据库的请求。那么使用Memcache已经没有意义了。
Memcache的悲观并发数在2W左右,但有可能在那之前内网带宽就已经被吃完,表现不稳定。(QPS达到800的时候Memcache就已经不稳定了)
方案:静态HTML

QPS达到2000

这个级别下,文件系统访问都成了灾难。
方案:做业务分离,分布式存储

四、优化

前端优化: 减少http请求、添加异步请求、启用浏览器缓存文件数据以及文件压缩、cdn加速、oss文件存储
流量优化:防盗链处理
服务器优化:页面静态化、并发处理(多线程,异步)
数据库优化:数据库缓存、数据库分库分表以及分区操作、读写分离(主从复制)
web服务器优化:nginx负载均衡

相关文章

  • 7.高并发大流量

    php如何解决网站大流量,高并发的问题? 考点 高并发架构相关概念 高并发:通常是指并发访问,也就是在某个时间点,...

  • face 29高并发大流量

    高并发大流量 并发 并发访问,在某个时间点 有多少个访问同时到来 php如何处理网站大流量高并发问题 流量优化 防...

  • 高并发系列文章第一篇:高并发和大流量解决方案

    本文将从宏观的角度上全方位剖析高并发和大流量解决方案 从一个面试题开始讲解:PHP如何解决网站大流量与高并发的问...

  • PHP高并发和大流量怎么解决?

    PHP高并发和大流量的解决方案 一 高并发的概念 在互联网时代,并发,高并发通常是指并发访问。也就是在某个时间点,...

  • PHP如何解决大流量和高并发问题

    一、高并发相关概念: QPS:每秒中请求或查询的数量,在互联网领域指每秒相应请求数(http请求);QPS不等于并...

  • 如何解决高并发和大流量

    名词解释:并发 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处...

  • 分布式电商开发 01

    互联网电商行业的特点 分布式 , 高并发 , 集群 , 海量数据 等等 那如何解决海量数据和高并发的问题呢? 1....

  • 秒杀系统开发(一)

    本文部分内容来自 【PHP秒杀系统 高并发高性能的极致挑战】 目标 如何设计和实现秒杀系统? 实现系统的高并发、高...

  • 缓存与数据库双写一致性的解决方案——附上代码解决方案

    传统企业中为了解决高并发大流量的问题,通常使用缓存+数据库的方式来支撑高QPS的访问,虽然能解决读QPS的问题,但...

  • 高并发-高并发和大流量解决方案

    高并发架构相关概念 并发 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,并且这几个...

网友评论

    本文标题:PHP如何解决大流量和高并发问题

    本文链接:https://www.haomeiwen.com/subject/yllgahtx.html