高并发大流量网站的优化方案

57 篇文章 3 订阅
48 篇文章 2 订阅

高并发常用术语:

  • QPS:每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求)
  • 吞吐量:单位时间内处理的请求数量(通常由QPS与并发数决定)
  • 响应时间:从请求发出到收到响应花费的时间,例如系统处理一个HTTP请求需要100ms,这个100ms就是系统的响应时间
  • PV:综合浏览量(Page View),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量,同一个人浏览你的网站同一页面,只记作一次PV
  • UV:独立访问(UniQue Visitor),即一定时间范围内相同访客多次访问网站,只计算为1个独立访客
  • 带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小
    日网站带宽=PV/统计时间(换算到秒)平均页面大小(单位KB)8
    峰值一般是平均值的倍数,根据实际情况来定
    QPS不等于并发连接数
    QPS是每秒HTTP请求数量,并发连接数是系统同时处理的请求数量
    (总PV数80%)/(6小时秒数20%)=峰值每秒请求数(QPS)
    80%的访问量集中在20%的时间!!!
  • PS达到50
    可以称之为小型网站,一般的服务器就可以应付
  • QPS达到100
    假设关系型数据库的每次请求在0.01秒完成

        假设单页面只有一个SQL查询,那么100QPS意味着1秒钟完成100次请求,但是此时我们并不能保证数据库查询能完成100次

        方案:数据库缓存层、数据库的负载均衡

  • QPS达到800

        假设我们使用百兆带宽,意味着网站出口的实际带宽是8M左右

        假设每个页面只有10k,在这个并发条件下,百兆带宽已经吃完

         方案:CDN加速、负载均衡

  •  QPS达到1000

            假设使用Memcache缓存数据库查询数据,每个页面对Memcache的请求远大于直接对DB的请求

             Memcache的悲观并发数在2W左右,但有可能在之前内网带宽已经吃光,表现出不稳定

              方案:静态HTML缓存

  • QPS达到2000

         这个级别下,文件系统访问锁都成为灾难

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


优化方案:

前端优化:(压缩工具,uglifyjs,webpack)

   文件合并,减少HTTP请求

    (图片地图,CSS 精灵,多个脚本合并,多个样式表合并,图片使用base64编码)

   

  启用浏览器缓存和文件压缩

    本地缓存:

      

pragma当该字段值为“no-cache”的时候,会知会客户端不要对该资源读缓存,即每次都得向服务器发一次请求才行
expire启用缓存和定义缓存时间,响应报文中Expires所定义的缓存时间是相对服务器上的时间而言的。如果客户端上的时间跟服务器上的时间不一致(特别是用户修改了自己电脑的系统时间),那缓存时间可能就没啥意义了
cache-control.nostore所有内容部保存到缓存或Internet临时文件中
cache-control.nocache不使用缓存,向服务器发起请求
cache-control.max-age告知客户端该资源在delta-seconds秒内是新鲜的,无需向服务器发送请求

    协商缓存:

Last-modified资源最后一次修改时间
if-Match比较Etag 资源匹配信息
if-None-Match比较Etag 资源匹配信息
If-Modified-Since

比较资源最后更新时间是否一致

if-Unmodified-Since比较资源最后更新时间是否一致

nginx相关配置:

  etag:on|off

  gzip压缩:

  gzip: on|off

  gzip_comp_level[1-9] 压缩级别越高压缩越小,越浪费CPU

 CDN加速 

 异步请求(实时数据要求比较高)

 建立独立的图片服务器

后端优化:

  防盗链

      1)referer  2)签名

  页面静态化

  并发处理

  队列处理

  数据库缓存

  分库分表(分区)

  读写分离

  负载均衡

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fish_study_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值