一个网站除了满足业务功能,还要满足性能需求,如果性能不好,随着用户的增长将出现性能瓶颈,对用户最直接的感官影响就是响应变慢,一般2秒以内算是比较好的体验,超过5秒体验就比较差了,极端情况下用户并发高的情况下,网站直接拒绝服务,严重影响业务运营。
网站性能指标
对于网站的性能指标,重要的是 响应时间、吞吐量、并发数。
- 响应时间是一次请求从发送请求到收到响应的总时间,直观的反映系统的快慢。
- 吞吐量是单位时间处理的请求数,通常用TPS来表示,是系统容量的直观体现。
- 并发数是系统同时能处理的请求数,对于同时在线用户数高的,短时间有大量用户使用的,譬如抢购类网站要求高,如果要让用户在短时间内都能访问到系统,需要有极高的并发能力支持。
可以用高速公路收费站来类比,响应时间就是收费窗口处理收费事件的时间,吞吐量是单位时间收费窗口总共收了多少辆车,并发量就是总共有多少个收费通道。
这几个指标之间的关系是什么呢?
假如该收费站收一笔费用耗时30秒(RT=30s),共有5个窗口(p=5),那么正常情况下1分钟该收费站能处理10个收费请求【v= (P/RT)*60s=10】,即吞吐量是10次/分钟。
如果前端每隔30秒有5辆车(即每分钟有10辆车)进入高速公路,该收费站将满负荷运行,收费人员馬不停蹄,车辆没有积压。如果每分钟有20辆车进入高速公路,那么第一分钟进入收费站的20辆车将有10辆车积压等待30秒,第二分钟进入的20辆车将最多等待90秒,以此类推,积压将越来越多,高速公路上将慢慢排队成长龙,车辆通过收费站的时长将越来越长,对应的是网站收到响应时间越来越长,直到超时不可用。
通过apache bench 工具ab测试网站性能指标可以看出,并发越大响应时间越长。从曲线看并发到70个响应时间就开始恶化,最大支持的并发就是70条每秒,正常响应时间是5.87毫秒,吞吐量TPS是170。此时的CPU利用率,链接数相对平稳,未达到资源的瓶颈。