4000-9696-28

微博为什么总在“崩”?且看如何通过性能测试保证高可用?

2023年09月04日 09:57供稿中心:北大青鸟总部

摘要: 微博崩了的原因,很简单,就是访问请求超过了系统负载,在同一秒有巨量的用户请求过来,而服务器来不及响应,被请求打爆了,因此崩溃了。修复的措施也很简单,即通过增加服务器数量,让服务器可以处理更多的用户请求。

一有“大瓜”出现,微博服务器便岌岌可危,到底是什么造成了微博崩溃,又该怎样避免?

微博崩了的原因,很简单,就是访问请求超过了系统负载,在同一秒有巨量的用户请求过来,而服务器来不及响应,被请求打爆了,因此崩溃了。修复的措施也很简单,即通过增加服务器数量,让服务器可以处理更多的用户请求。那么如何衡量系统的性能呢?我们一般用这三个指标,响应时间、并发数、吞吐量来衡量系统性能。

响应时间,即请求发出到收到响应的时间,一般情况下,这个值都非常非常非常的小,微秒或毫秒级别,正常的网页请求时间一般在2s以内,超过2s之后,用户体验就不佳了,超过20s,用户无可忍耐,选择离开,因此响应时间是非常重要的指标。并发数,指的是同一时间能处理的用户请求数量。吞吐量,指的是单位时间能够处理的请求数,体现的是系统整体处理能力,比如每秒请求数HPS、每秒事务数TPS、每秒查询数QPS。

了解了系统性能衡量指标后,我们如何去找到这些指标的值呢?很简单,就是性能测试,具体又可以分为负载测试、压力测试、稳定性测试。负载测试指的是,对系统不断的增加并发请求,增加系统的负载,直到系统的指标达到临界值。压力测试指的是,在超过系统安全负载的情况下,继续增加压力,直到系统崩溃,不能再处理任何请求,从而获得系统的最大承受压力值。稳定性测试,指的是在一定的压力下,系统能够稳定的运行时间,一般都是做7*24的稳定性测试。



一般来说,系统大部分时间都处于ab区间,当发生一些大事件时,系统的请求会增多,从ab区间变为bc区间,而爆炸性事件,则直接让系统的请求巨量增加,从bc区间变为cd区间,从图中我们也可以看到,在cd的时候,系统能处理的请求已经很少了,逐渐走向崩溃的边缘,在d点彻底崩溃。而通过性能测试,我们能找到系统的b、c、d点,提前做好应对措施,比如返回上一级页面,又或者是增加服务器数量等等。



那么如何进行性能测试呢?总的来说包含7部分,第一步前期准备、第二步环境搭建、第三步开发测试脚本、第四步准备测试数据、第五步执行测试、第六步分析结果与调优、第七步则是反馈跟踪。在第一步前期准备中,我们主要是了解系统、分析需求、建立模型,在了解系统时主要关注系统的架构、开发语言、部署架构、操作系统数据库中间件参数;在分析需求时关注即是否有预期承载值,测试目标是针对哪些核心流程、处理多少请求、占用资源要求、响应时间要求;在建立模型时,主要关注数据来源于数据库日志或监控系统、系统负载吞吐量、系统压力高峰时期分布情况。在第二步搭建环境,主要是准备服务器环境、测试机环境,测试机用于模拟用户请求,服务器环境用户模拟业务环境。在第三步开发测试脚本,主要是选择对应的测试工具(如LoadRunner或Jmeter),使用脚本模拟用户输入、增加检查点、增加数据收集与验证。第四步则基于第三步的情况进行数据生成。第五步则开始执行测试,不断施加压力,监控业务系统的操作系统、网络、数据库各个层面的指标,比如CPU内存磁盘情况、网络发送接收包数量等。第六步与第七步,则根据测试结果进行分析,不断调整、测试、分析、反馈,直到拿到最终结果。

性能测试是最好的手段之一,通过测试找出系统瓶颈,提前优化,避免系统宕机、不可用事件又双叒叕的发生。


标签:
关于我们
公司简介
发展历程
青鸟荣誉
联系我们
加入我们
青鸟课程
BCVE视频特效课程
BCUI全链路UI设计
BCSP软件开发专业
BCNT网络工程师
启能职业教育基础课程
学习客户端下载
青鸟优师
青鸟云课堂
微信 公众号 咨询 顶部 首页
官方新版意见收集

*

官方新版意见收集

提交成功,感谢您的反馈。

我们会认真阅读和考虑每个用户的反馈。