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

Redis并发的一个小问题

php高并发应该用Apache还是IISphp高并发应该用Apache还是IIS好?另外我现在的项目有个问题使用Apache时并发数60左右操作MySQL数据时,MySQL数据处理速度会变慢使用 IIS 时并发数60左右操作MySQL数据时,MySQL数据处理1分...

一  高并发的概念
在互联网时代,并发,高并发通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。

 

二  高并发架构相关概念
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实现负载均衡

php并发应当用Apache还是IIS

php高并发应该用Apache还是IISphp高并发应该用Apache还是IIS好?另外我现在的项目有个问题使用Apache时并发数60左右操作MySQL数据时,MySQL数据处理速度会变慢使用 IIS 时并发数60左右操作MySQL数据时,MySQL数据处理1分...

php如何处理抢购类功能的并发请求

在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖。 2.频繁操作数据库,导致性能下降。本文主要和大家详细介绍了php处理抢购类功能的高并发请求,具有一定的参考价值,感兴趣的小伙伴们可以...

mysql如何处理并发

mysql高并发的解决方法有:优化SQL语句,优化数据库字段,加缓存,分区表,读写分离以及垂直拆分,解耦模块,水平切分等。高并发大多的瓶颈在后台,在存储mysql的正常的优化方案如下:(1)代码中sql语句优...

mysql的bug测试--针对并发进行测试

mysql的bug测试,针对高并发进行测试此测试是在本地的apache测试D:\WAMP\Apache\bin\ab.exe -c 200 -n 200 www.php1100.com/mysql.php(此网址是自己的测试网址,里面的代码如下)error_reporting(0); echo &

网络直播开发过程中非常重要的一环

相信大家对高并发这个词并不陌生,现在有很多家科技公司在进行人才招聘时都会问到关于高并发的问题。其实高并发通常指通过设计保证系统能够同时并行处理很多请求,是网络直播开发过程中关于系统架构必须考虑的因素...

php并发应当用Apache还是IIS

php高并发应该用Apache还是IISphp高并发应该用Apache还是IIS好?另外我现在的项目有个问题使用Apache时并发数60左右操作MySQL数据时,MySQL数据处理速度会变慢使用 IIS 时并发数60左右操作MySQL数据时,MySQL数据处理1分...

关于使用php 多线程处理并发的搜索请求的有关问题

关于使用php 多线程处理高并发的搜索请求的问题!我用php给android做后端,现在androdi有一个搜索功能,就是输入关键词进行搜索。我打算写两个方法来共同处理高并发搜索请求的情况,第一个方法接收手机POST过来的关键词并...

php网站 并发时候如何优化

这篇文章介绍的内容是关于php网站 高并发时候如何优化,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下高并发解决方案案例:当QPS达到2000时优化方案: 做业务分离,分布式存储1.流量优化

php能处理并发吗?php并发解决方案

php在执行的过程中究竟是如何处理高并发问题的,接下来我们具体的来看一下关于PHP高并发的一个解决方案。先来看看php在服务器的执行过程:当用户请求服务器php文件的时候,服务器将对php文件进行语法分析,...

php memcached的并发处理队列实现有关问题

php memcached的高并发处理队列实现问题 刚看了memcached处理抢购问题的队列的一些代码,我理解到的思路有两种 1.使用 $mem->set(LOCK_key,1) 来加锁,入队结束后 $mem->delete(LOCK_key) 解锁 2.使用mem