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实现负载均衡

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原型

2019独角兽企业重金招聘Python工程师标准>>> 什么是原型: 对象与对象之间的关系 转载于:https://my.oschina.net/u/2285087/blog/854377

JavaScript中数组slice和splice的对比小结

前言 今天重温了一下Javascript,看到了数组的方法,其中有两个比较相似的方法——splice和splice,看着很像,就是多了一个p,但是用法却相当不一样。 在使用中,可以通过选择一个具有强语义表达性的 API 来减少…

存储服务器的操作系统,存储服务器是什么操作系统

存储服务器是什么操作系统 内容精选换一换镜像服务提供了私有镜像的全生命周期管理能力,主要包括创建私有镜像,复制、共享或导出私有镜像等操作,您可以根据实际场景选择合适的方法,并结合弹性云服务器、对象存储等周边服务完成业务…

优化--减少HTTP请求

一、 图片地图 (将几张图片合为一张,根据用户点击的位置发送不同请求,减少了图片的请求数量) 案例所在位置:http://stevesouders.com/hpws/imagemap.php 二、css精灵(和图片地图功能相似,都是将几张图片合并在一起,根据位置发送不同请求) 这里不做具体使用介绍,百度有此方面内…

软件负载均衡

一、软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文参考大量文档&a…

JAVA多线程之先行发生原则

一、引子   如果java内存模型中所有的有序性都仅仅依靠volatile和synchronized来完成,那么有一些操作会变得很繁琐,但我们在编写java并发代码时并未感觉到这一点,这是因为java语言中有个先行发生原则(happens-before&#xff09…

git工具 将源码clone到本地指定目录的三种方式

git工具 将源码clone到本地指定目录的三种方式 CreationTime--2018年7月27日15点34分 Author:Marydon 1.情景展示 运行git-bash.exe,输入命令:git clone 下载源码地址-->回车,结果发现项目被下载到了,git工具的安装目录下 如何…

[摘]全文检索引擎Solr系列—–全文检索基本原理

原文链接--http://www.importnew.com/12707.html 全文检索引擎Solr系列—–全文检索基本原理 2014/08/18 | 分类: 基础技术, 教程 | 2 条评论 | 标签: solr 分享到: 64 本文作者: ImportNew - 刘志军 未经许可,禁止转载…

优化-浏览器缓存和压缩优化

一、减少HTTP请求 1.图片地图: 假设导航栏上有五幅图片,点击每张图片都会进入一个链接,这样五张导航的图片在加载时会产生5个HTTP请求。然而,使用一个图片地图可以提高效率,这样就只需要一个HTTP请求。 服务器端图片…

汇新杯┃拼多多黄峥:普通的创业者,不普通的朋友圈_创成汇

本月26日晚,拼多多在美国纳斯达克上市,开盘后便持续走高,收涨高达40.53%,这家从成立到上市不过短短2年10个月的企业,是近四年来最大中概股IPO。拼多多创始人黄峥身家一夜暴涨到138.5亿美元。在拼多多之前,黄…

NCC CAP 6.2 版本正式发布

原文:https://www.cnblogs.com/savorboard/p/cap-6-2.html作者:杨晓东前言今天,我们很高兴宣布 CAP 发布 6.2 版本正式版,在这个版本中我们主要做了一些功能优化,以及针对目前已经发现的几个 BUG 进行了修复了。那么&a…

pdksh 包

安装oracle gi,rac 时经常会碰到 pdksh 的检测失败,可以从这个网站下载需要的包 http://rpm.pbone.net/ rpm -q ksh-* rpm -e ksh-* rpm -ivh ./pdksh* 或者参考 Requirements for Installing Oracle 11gR2 RDBMS on RHEL6 or OL6 64-bit (x86-64) (文…

sysctl.conf工作原理

2019独角兽企业重金招聘Python工程师标准>>> sysctl.conf工作原理 sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/IP堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人…

CDN加速

一、CDN的概念 全称是Content Delivery Network,即内容分发网络。 其基本思路是: 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。 通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智…

修复删除/var/lib/dpkg目录后,无法使用apt-get命令问题

2019独角兽企业重金招聘Python工程师标准>>> Unfortunately Ive deleted dpkg directory while removing the lock. By mistake I typed rootsam:~$ rm -r /var/lib/dpkgNow when I am trying to install/uninstall packages it shows me following error. E: Could…

动态加载vs静态加载

动态加载: 1:灵活,可以在需要的时候用LoadLibrary进行加载,在不需要的时候用FreeLibrary进行卸载,这样可以不必占用内存。2:可以在没有dll时候发现,而不致程序报错。3:加载程序中有条…

Webpack前端打包工具

一、安装 安装Webpack之前需要安装nodejs,然后用npm安装: $ npm install webpack -g &nsbp;运行以上命令就将Webpack安装到了全局环境中。 但是通常我们会将Webpack只安装到项目的依赖中: $ cd /www/webpack_demo1 // 进入项目目录,确保该目录…

动态语言静态化

一、什么是动态语言静态化 将现有PHP等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定向到静态html的过程 注 : 对实时性要求不高的页面才适合去做动态语言静态化 二、为什么要静态化 1. 动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大 2. 访…

WPF-06 样式(Style)

在我们前面介绍资源的时候&#xff0c;我们提到了样式表&#xff0c;如果你之前是做Web开发的&#xff0c;你会发现Style有点类似于Web中的CSS。控件级别样式我们可以在控件级别定义自己的样式&#xff0c;控件级别的样式是优先级最高的<Window x:Class"Example_06.Sel…

构建Squid代理服务器-传统代理、透明代理、反向代理

Squid是Linux系统中最常用的一款开源代理服务软件&#xff0c;主要提供缓存加速和应用层过滤控制的功能&#xff0c;可以很好的实现HTTP、FTP、DNS查询以及SSL等应用的缓存代理。 正向代理&#xff1a;根据实现的方式不同&#xff0c;代理服务可分为传统代理和透明代理。 传统代…