高并发大流量专题---一、高并发大流量解决方案总结

高并发大流量专题---一、高并发大流量解决方案总结

1、总结

一句话总结:

能够根据 先后端数据库顺序 及 QPS数量来 决定优化方法

 

一、PHP如何解决网站大流量与高并发的问题?

流量优化+前端优化:好比防盗链处理、减小HTTP请求、添加异步请求、CDN加速、创建独立图片服务器、启用浏览器缓存和文件压缩等等
服务端优化+Web服务器优化:好比页面静态化、并发处理、队列处理、负载均衡等等
数据库优化:好比数据库缓存、分库分表、分区操做、读写分离、负载均衡等等

 

二、咱们说的高并发是什么?

不是操做系统中的并发:在操做系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
某个时间点的并发访问量:上面的定义明显不是咱们一般所言的并发,在互联网时代,所讲的并发、高并发,一般是指并发访问。也就是在某个时间点,有多少个访问同时到来。
日PV在干万以上:一般若是一个系统的日PV在干万以上,有多是一个高并发的系统

 

三、高并发解决方案?

技术:各类优化、缓存、负载均衡等技术
机器堆:有的公司彻底不走技术路线,全靠机器堆,有钱,任性

 

四、高并发的问题中,须要了解的一些名词?

qps、吞吐量、响应时间、pv、uv、带宽、日网站带宽、峰值

QPS:每秒响应请求数(指HTTP请求):每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求);
吞吐量:单位时间内处理的请求数量(一般由QPS与并发数决定)
响应时间:从请求发出到收到响应花费的时间。例如系统处理一个HTTP请求须要100ms,这个100ms就是系统的响应时间
PV:综合浏览量(Page View),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量;同一我的浏览你的网站同一页面,只记做一次PV
UV:独立访客(UniQue Visitor),即必定时间范围内相同访客屡次访问网站,只计算为1个独立访客
带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小
日网站带宽=PV/统计时间(换算到秒)*平均页面大小(单位KB)*8
峰值通常是平均值的倍数,根据实际状况来定
峰值每秒请求数(QPS)=(总PV数*80%)/(6小时秒数*20%)前端

 

五、日网站带宽如何计算?

带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小
日网站带宽=PV/统计时间(换算到秒)*平均页面大小(单位KB)*8

峰值通常是平均值的倍数,根据实际状况来定nginx

 

六、QPS 等于并发链接数 么?

不等于:QPS是每秒HTTP请求数量,并发链接数是系统同时处理的请求数:一个链接里面可能有多个http请求

 

七、峰值每秒请求数(QPS) 如何计算?

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

 

八、压力测试是什么?

最大并发:测试服务器集群(或单台)能承受的最大并发
QPS值:测试服务器集群(或单台)最大承受的QPS值

通常了解单台服务器可以承受的QPS是多少ajax

 

九、经常使用性能测试工具?

ab、wrk.http load、Web Bench、Siege、Apache JMeter
ab:全称是apache benchmark,是apache官方推出的工具
ab原理:建立多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,所以,它既能够用来测试apache的负载压力,也能够测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

 

十、ab(apache benchmark)是apache官方推出的工具,那么它可以测试nginx么?

能:它的测试目标是基于URL的:ab建立多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,所以,它既能够用来测试apache的负载压力,也能够测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

 

 

十一、ab的使用(好比 模拟并发请求100次,总共请求5000次)?

运行ab命令:ab -c 100 -n 5000 待测试网站

 

十二、ab测试注意事项?

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

 

1三、如何安装使用ab测试?

独立安装:yum -y install httpd-tools
通常安装apache会自动安装ab
ab使用:ab -c 100 -n 5000 http://192.168.52.6/index
[root@localhost ~]# ab -c 100 -n 5000 http://192.168.52.6/index
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.52.6 (be patient)
Completed 500 requests
Completed 1000 requests
Completed 1500 requests
Completed 2000 requests
Completed 2500 requests
Completed 3000 requests
Completed 3500 requests
Completed 4000 requests
Completed 4500 requests
Completed 5000 requests
Finished 5000 requests


Server Software:        Apache
Server Hostname:        192.168.52.6
Server Port:            80

Document Path:          /index
Document Length:        1917 bytes

Concurrency Level:      100
Time taken for tests:   22.049 seconds
Complete requests:      5000
Failed requests:        3
   (Connect: 0, Receive: 0, Length: 3, Exceptions: 0)
Write errors:           0
Total transferred:      11438133 bytes
HTML transferred:       9579249 bytes
Requests per second:    226.77 [#/sec] (mean)
Time per request:       440.972 [ms] (mean)
Time per request:       4.410 [ms] (mean, across all concurrent requests)
Transfer rate:          506.61 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   9.0      0     125
Processing:     1  419 1614.8     68   17425
Waiting:        0  412 1601.8     68   17425
Total:          1  420 1614.8     72   17427

Percentage of the requests served within a certain time (ms)
  50%     72
  66%    125
  75%    163
  80%    193
  90%    399
  95%    987
  98%   7019
  99%   9085
 100%  17427 (longest request)

 

 

1四、不一样QPS下,优化与哪些方面有关?

硬件条件
网络带宽

随着QPS的增加,每一个阶段须要根据实际状况来进行优化,优化的方案也与硬件条件、网络带宽息息相关。chrome

 

1五、不一样QPS下的优化方案?

QPS100:数据库缓存层、数据库的负载均衡
QPS800:CDN加速、负载均衡
QPS1000:静态HTML缓存
QPS2000:作业务分离,分布式存储

 

1六、QPS达到50 须要优化么?

能够不须要;称之为小型网站,通常的服务器就能够应付

 

1七、QPS达到100 如何优化?

|||-begin数据库

假设关系型数据库的每次请求在0.01秒完成;apache

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

|||-end浏览器

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

 

1八、QPS 达到800 如何优化?

|||-begin缓存

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

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

|||-end

CDN加速、负载均衡

 

1九、QPS 达到1000 如何优化?

|||-begin

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

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

|||-end

静态HTML缓存

 

20、QPS 达到2000 如何优化?

|||-begin

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

|||-end

作业务分离,分布式存储

 

 

2一、高并发优化的方向有哪些?

流量优化+前端优化:好比防盗链处理、减小HTTP请求、添加异步请求、CDN加速、创建独立图片服务器、启用浏览器缓存和文件压缩等等
服务端优化+Web服务器优化:好比页面静态化、并发处理、队列处理、负载均衡等等
数据库优化:好比数据库缓存、分库分表、分区操做、读写分离、负载均衡等等

流量优化 方法
防盗链处理


前端优化 方法
减小HTTP请求
添加异步请求:好比ajax
启用浏览器缓存和文件压缩
CDN加速
创建独立图片服务器



服务端优化 方法
页面静态化
并发处理
队列处理


数据库优化 方法
数据库缓存
分库分表、分区操做
读写分离
负载均衡


Web服务器优化 方法
负载均衡

 

2二、流量优化 方法?

防盗链处理

 

2三、前端优化 方法?

减小HTTP请求
添加异步请求:好比ajax
启用浏览器缓存和文件压缩
CDN加速 + 创建独立图片服务器

 

2四、服务端优化 方法?

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

 

2五、数据库优化 方法?

数据库缓存
分库分表、分区操做
读写分离
负载均衡

 

2六、Web服务器优化 方法?

负载均衡

 

2七、如何查看页面的响应时间?

chrome浏览器->network->右下角红色字:好比 Load:1.65s

 

95 requests I 409 KB transferred I 718 KB resources l Finish:3.06s l DOMContentloaded:910 ms I Load:1.65s

 

 

 

2、内容在总结中

相关文章
相关标签/搜索