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

1. 高并发和大流量

真题: php如何解决网站大流量与高并发的问题?

高并发架构相关概念

并发: 通常是指并发访问, 也就是在相同时间点有多少个访问同时到来

什么算是高并发: 通常如果一个系统的日pv在千万以上就算是高并发

高并发我们具体关心什么?

QPS: 每秒请求或者查询的数量, 在互联网领域指每秒响应请求数(指HTTP请求)

吞吐量: 单位时间内处理的请求数量(通常由qps与并发数决定)

响应时间: 从请求发出到收到响应花费的时间, 例如系统处理一个HTTP请求需要100ms, 这个100ms就是系统响应的时间

PV: 综合浏览量(page view), 即页面浏览量或者点击量, 一个方可在24小时内访问的页面数量(刷新页面不会累加pv, 同一个人浏览网站的同一个页面只记作一次pv)

UV: 独立访客(unique vistor), 即一定时间范围内相同访客多次访问网站, 只计算一个独立访客

带宽: 计算带宽大小需要关注两个指标, 峰值流量和页面的平均大小

日网站带宽 = pv / 统计时间(换算到秒) * 平均页面大小(单位kb) * 8

峰值一般是平均值的倍数, 根据实际情况来定

QPS 不等于并发连接数, QPS是每秒的HTTP请求数量, 并发连接数是系统同时处理的请求数量

(总pv数 * 80%) / (6小时秒数 * 20%) = 峰值每秒请求数(QPS)(80%的访问量集中在20%的时间)

压力测试: 测试能承受的最大并发数, 测试最大承受的QPS值

常用的测试工具: ab等

ab: 全称是apache benchmark, 是apache官方推出的工具; 创建多个并发访问线程, 模拟多个访问者同时对某一url地址进行访问, 它的测试目标是基于URL的, 因此, 它既可以用来测试apache的负载压力, 也可以测试nginx, lightHTTP, Tomcat, iis等其他的web服务器的压力

ab的使用: 模拟并发请求100次, 总共请求5000次

ab -c 100 -n 5000 待测试网站

注意事项: 测试机器与被压测试分开, 不要对线上服务压力测试, 观察测试工具ab所在机器, 以及被测试工具ab所在机器, 以及被测试的前端机器的cpu, 内存, 网络等都不超过最高限额的75%

QPS达到极限: 随着QPS的增长, 每个阶段需要根据实际情况来优化, 优化的方案也与硬件条件和网络带宽息息相关

QPS达到50: 可以称之为小型网站, 一般的服务器就可以

QPS达到100: 假设关系型数据库的每次请求在0.01s完成, 单页面只有一个sql查询, 那么100QPS就意味着1秒钟完成100次请求, 但是此时我们并不能保证数据库查询能完成100次

方案: 数据库缓存, 数据库负载均衡

QPS达到800: 假设我们使用带宽,意味着网站出口实际带宽是8m左右; 每个页面只有10k, 在这个并发条件下, 百兆宽带已经吃完

方案: CDN加速, 负载均衡

QPS达到1000: 假设使用memcache缓存数据库查询数据, 每个页面对memcache的请求远大于对DB的请求; memcache的悲观并发是在2w左右, 但有可能在之前内网宽带就已经吃光了, 表现不稳定

方案: 静态HTML缓存

QPS达到2000: 这个级别下文件系统访问锁都成为了灾难

方案: 做业务分离, 分布式存储

 

高并发的解决方案

流量优化: 防盗链处理

前端优化: 减少http请求, 添加异步请求, 启用浏览器缓存和文件压缩, CDN加速(把数据缓存到CDN的节点中), 建立独立的图片服务器

服务端优化: 页面静态化, 并发处理, 队列处理

数据库优化: 数据库缓存, 分库分表, 分区操作, 读写分离, 负载均衡

web服务器优化: 负载均衡(nginx的反向代理)

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值