高并发和大流量的解决方案

首先了解 什么是并发 ?

并发,在操作系统中,是指在一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行.

上面肯定不是我们所说的高并发,在互联网时代,所讲的并发,高并发,通常是指并发访问,也就是在某个时间点,有多少访问同时到来. 比如同时有两个人打开我的博文,这时,并发数为2;

在了解下什么是同时,一般我们讲的同时不是指一秒 大概是三分之一秒

通常如果一个系统的日PV在千万以上,有可能是一个高并发的系统;(为什么日PV千万级别还有可能不是高并发,有的公司就是有钱 就是用机器堆,不考虑优化,这种不在我们的讨论范围);

高并发我们应该具体关心的是什么?

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

吞吐量:单位时间内处理的处理数量(通常与QPS与并发数决定);

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

PV:综合浏览量(Page View),即页面浏览器或者点击量,一个访客在24小时内访问的页面数量; PS(刷新不会累加PV)

同一个人游览你的网址同一页面,只记作一次PV;

UV:独立访客(UNiQue Vistor),即一定时间范围内相同访客多次访问网址,只计算为1个独立访客.

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

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

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

QPS 不等于并发连接数

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

(总PV数 * 80)/(6小时秒数*20%) = 峰值每秒请求数(QPS); (六小时只是预计时间,而为什么是PV的80和20的时间呢,因为百分之80的访问量在于百分之二十的时间,这就是28定律)

压力测试

测试能承受的最大并发

测试最大承受的QPS值

常用性能测试工具

ab,wrk,http_load,web Bench,Siege,Apache JMeter
这里详细的说下ab

ab 全称是apache banchmark,是apache官方推出的工具.

创建多个并发访问县城,模拟多个访问者同时对某一UPL地址进行访问,他的测试目标是基于URL,因此,它既可以用来测试apache的负载压力,也可以测试nginx,lighttp,tomcat,IIS等其它web服务器的压力.

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

ab -c 100 -n 5000 待测试网址
-c代表并发数 -n代表总共请求

注意事项 :

测试机器与被测试机器分开,(会使数据不准确)
不要对线上服务做压力测试(线上直接崩了)
观察测试工具ab所在机器,以及被测试的前端机的CPU,内存,网络等都不超过最高限度的75%;

QPS达到极限

随着QPS的增长,每个阶段需要根据实际情况进行优化,优化的方案也与硬件条件,网络宽带息息相关.

QPS达到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

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

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

优化方案 :

流量优化

  • 防盗链处理

前端优化

  • 减少HTTP请求 例如:css或js文件进行合并 文件会变大,但是请求变少
  • 添加异步请求
  • 启用游览器缓存和文件压缩
  • CDN加速
  • 建立独立图片服务器

服务端优化

  • 页面静态化
  • 并发处理
  • 队列处理

数据库优化

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

Web服务器优化

  • 负载均衡

PHP高并发和大流量解决方案相关推荐

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

    高并发架构相关概念 并发 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,并且这几个程序都是在同一个处理机上运行,担任一个时刻点上只有一个程序在处理机上运行. 我们所说的 ...

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

    #高并发架构相关概念# 并发: 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任意一个时刻上只有一个程序在处理机上运行. 我们说的高并 ...

  3. 高并发与大流量解决方案

    1.相关概念 1.1.并发与并行 1.1.1.并发(Concurrent) 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行 就想前面提到的 ...

  4. Java 高并发,什么方式解决?高并发和大流量解决方案

    对于我们所研发的网站,若网站的访问量非常大,那么我们必须考虑相关的并发访问问题,而并发问题是绝大部分的程序员头疼的问题. 本 Chat 带你领略一下相关概念和解决方案.本 Chat 文章部分观点来自网 ...

  5. x86服务器中网络性能分析与调优(高并发、大流量网卡调优)

    最近在百度云做一些RTC大客户的项目,晚上边缘计算的一台宿主机由于CPU单核耗被打满,最后查到原因是网卡调优没有生效,今天查了一下网卡调优的资料,欢迎大家共同探讨. 一.网卡调优方法 1.Broadc ...

  6. redis实战教程(二)- 高并发、大流量限速

    关键代码如下: @Override public void rateLimit(String key, int unitTime, long rate) { Jedis jedis = getJedi ...

  7. 处理高并发、大数据存储的网站技术架构

    本文转载自: https://zhuanlan.zhihu.com/p/24669514 大型网站技术架构剖析 高并发,大流量 40亿.PV.page view.3.5亿,IP. 高可用,高可用MyS ...

  8. 大型技术网站的技术( 高并发、大数据、高可用、分布式....)(一)

    面对高并发.大流量.高可用.海量数据.用户分布广泛.网络情况复杂这类网站系统我们如何应对??? 第一阶段   一台服务器不行就上多台服务器    1.应用程序与数据服务分离        将应用程序. ...

  9. php大流量网站解决,PHP 大型网站 高并发大流量解决方案

    标签:htm   指定   配置   热备   耗资源   负载均衡集群   session管理   redis   mod 网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验 ...

  10. Web网站架构演变—高并发、大数据

    转 Web网站架构演变-高并发.大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可 ...

最新文章

  1. PHP服务器时间差8小时解决方案
  2. 《LeetCode力扣练习》第19题 删除链表的倒数第 N 个结点 Java
  3. C++中的c_str()函数用法
  4. tomcat启动报错The JRE could not be found.Edit the server and change the JRE location
  5. Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
  6. 以太坊2.0抵押地址新增13.47万ETH
  7. Java面向对象(一)20170517
  8. paip.提升安全性------登录地区变换后进行验证
  9. 如何使用php写爬虫,PHP能写爬虫吗?(PHP实现爬虫技术示例)
  10. 训练集,验证集,测试集(以及为什么要使用验证集?)(Training Set, Validation Set, Test Set)
  11. Effective Approaches to Attention-based Neural Machine Translation笔记
  12. 拉普拉斯矩阵(Laplacian matrix)及其变体
  13. php 上传apk包到cdn_零基础搭建自己的博客网站和配置CDN设置wordpress篇
  14. python文本编辑器_python最好的ide和文本编辑器
  15. 计算机安装系统作用是什么,告诉你重装系统对电脑有什么影响
  16. 二进制安全学习笔记(2)
  17. 共识协议(5)DPOS委托权益证明
  18. window安装ab压力测试
  19. 李建忠设计模式——观察者模式
  20. FCPX插件:视频转场插件Stupid Raisins Panel Pop

热门文章

  1. Latex复杂三线图的处理
  2. 【升级版】和秋叶一起学Office
  3. html注册登录模板
  4. MongoVUE的基本使用
  5. 亲测有效,推荐4款好用的录屏软件
  6. oracle内连接左连接右连接,ORACLE 左连接 右连接 内连接 区别
  7. oracle内连接和外连接
  8. 中文版putty后门事件分析
  9. gis等时圈怎么做_ArcGIS中输入风格一致的带圈数字
  10. QUT期末考试《电子商务概论》思维导图