开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第十一天,点击查看活动详情
性能测试往往在投产上线前开展,无法对整个系统变更进行全面的覆盖测试,因此性能测试需求提出十分关 键。性能测试需求交付过程中,需要对开发团队提出的测则试需求进行审查,重点分析交付的测试需求是否充分覆盖 了影响系统性能的因素,避免遗漏重要测试项,引发生产性能事件。
以MySQL为例:
影响数据库性能的主要因素总结如下:
1、sql查询速度
2、网卡流量 3、服务器硬件
4、磁盘IO
以上因素并不是时时刻刻都会影响数据库性能,而就像木桶效应一样。如果其中一个因素严重影响性能,那么整个数据库性能就会严重 受阻。另外,这些影响因素都是相对的。
例如:当数据量并没有达到百万千万这样的级别,那么sql查询速度也许就不是个重要因素,换句话说,你的sql语句效率适当低下可能 并不影响整个效率多少,反之,这种情况,无论如何怎么优化sql语句,可能都没有太明显的效果。
硬件
CPU
CPU通常负责计算机系统的主要计算工作。如果系统得到的CPU资源不足以满足系统的处理需求,就有可能影响系统性 能。
内存
CPU的处理数据需要暂时存放在内存中,因此内存资源也是影响系统性能的一大因素。
磁盘
磁盘的IO速度远小于内存读写速度,如果系统运行需要等待磁盘IO的完成,则系统性能就会收到很大影响。
网络
与磁盘IO类似,网络IO的速度远小于内存,而且受到各种网络各因素影响。网络I/0经常是系统性能的瓶颈。
软件
锁竞争
临界资源的使用需要用到锁,锁的竞争不仅需要上下文切换的开销,还经常会导致线程等待。甚至如果发生死锁,系统 性能就会受到严重影响。
过载
系统过载可能导致系统性能雪崩式下降。(某个时间段突然超过过系统承受能力的高并发)
以上粗略的分析可能影响性能的因素,在实际操作作中,无论是需求分析或者需求评审会议,性能测 试需求都直接或间接通过此类方法进行评判,全面分析性能影响,对准确提出性能测试需求,避免测试工作存在遗 漏起到非常关键的作用。