比较一个系统中两个模块的性能差别:不要同时压这两个模块

要比较一个系统中两个模块的性能差别(比如同一个库中的两个类似的表),有两种压测模式:

1. 一个test plan含两个senario, 执行一次,同时出两个模块的结果。

2. 搞两个test plan, 各带一个senario; 各执行一次,各出一个结果。

第一种模式很有吸引力,因为它可省下很多重复的配置工作;只执行一次,比较省时;像jmeter之类的还会直接给出直方图,以示比较。

然而,我的亲身经历表明,第1种模式由于公共资源占用问题会导致“大锅饭”效应: 同时压测两个模块,慢模块会占用过多公共资源(cpu, 内存,连接池等),导致快模块无法获得足够的资源因而也变慢。 这种模式下比较出来的结果并不准确。

所以,还是应该把两个测试互相隔离起来,搞两个 test plan,各带一个senario吧。

p.s. 如果你用jmeter,可以只写一个test plan,带两个sampler, 然后enable一个,disable另一个,这样每次执行时仍是隔离的。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.