性能,可伸缩型和稳定性工作经验谈

          最近一年来一直做MS的一个产品的测试工作,结合之前的开发经验,谈一谈对大型软件产品的性能,可伸缩性和稳定性的看法。

我先来简单定义一下这三个概念:

性能就是执行任务的时间,任务执行的越快,性能就越好。

可伸缩性就是一个系统能够在同一时间内执行任务的数目,一般体现在系统能够支持的用户数目上,HP的LoadRunner是一个很好的测试工作。

稳定性体现在一个系统在使用的时候会有多少Error和Exception,越少则系统越稳定。

这三个属性是衡量一个系统的重要指标,它们互相影响,相辅相成。

 性能不佳会影响可伸缩性

性能不佳意味着执行一项任务要花费更长的时间,这样当多个用户同时使用该系统的时候就会需要更多的共享资源,比如DB,从而减少了系统的可伸缩性。

 性能不佳会影响稳定性

性能不佳意味着执行一项任务要花费更长的时间,这样就会增加更多用户同时使用该系统的可能性,这样会增加死锁和资源冲突的可能性,从而增大产生Error和Exception的几率。

 可伸缩性不佳会影响性能

可伸缩性不佳就是说系统能够同时运行的任务数目比较少,这样如果有大量的任务就不得不通过排队来完成,这样性能就会下降。

可伸缩性不佳会影响稳定性

可伸缩性不佳意味着对系统的请求大于系统能够承受的能力,这时候系统有两个选择,把请求排队或者拒绝请求,拒绝请求一般会导致比较坏的用户体验,试想一下,如果你浏览一个网站却被告知这个网站打不开,你以后还会浏览这个网站吗?排队请求就会导致系统性能下降,从而会影响系统的稳定性。

稳定性不佳会影响性能

稳定性不佳意味着三件事情,

第一:错误会在系统中传递,从而增加CPU和内存的消耗。

第二:程序如果执行到一半出现了错误就会需要而外的逻辑处理这些错误,或者回滚到执行之前的状态,这些额外的逻辑或者回滚无疑会增加系统资源的消耗。

第三:当用户进行操作得不到想要的结果,一般会重新试一次,这样会加重对性能的影响。 稳定性不佳会影响可伸缩性稳定性不佳就会消耗更多的资源,这样用于支持可伸缩性的资源就会减少,从而最终影响能够支持的用户数量。

这给我们什么样的启示呢?

第一:在架构系统的时候设置这些系统属性的目标,在测试的时候确保完成了这些目标。

第二:这系统开发周期里尽早的发现这些性能,可伸缩性,稳定性问题,发现的越早,修复的代价越小。

 

QQ:281286841 本人对这方面比较关注,有兴趣的读者可以多多交流。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值