Can you show me the performance improvement?
Closed this issue · 5 comments
ServiceComb Pack 0.5.0 uses Actor to get 10 times improvement.
Can you show me the performance test right on the txle side?
Refer to the Performance Testing Document.
And there is also the latest result:
And the latest result will be updated later.
We updated the Performance Testing Document.
Can you show me the jmeter scripts? I cannot tell what kind of invocation are you send to the alpha server.
Did you simulate the saga rollback scenario?
并发为1250是, 在平均耗时降低一个数量级的时候,总耗时还增加了一个数量级, 让我感觉小数点发生的漂移。
于是我做了一个简单的计算,看了一下吞吐率变化不大,假设测量计算没有问题, 那在事务处理量总数不变的情况,并发数越大,总耗时时间越少, 但是这和测量结果不一致。 于是我假设了你们测试是一个并发跑100000个事务, 总事务 = 吞吐* 耗时 = 并发数 * 事务量, 结果发现计算结果发现差了两个数量级,这不由让我怀疑起来这个性能测试的真实性。
@WillemJiang
是我的失误导致1250-2000并发的平均耗时和总耗时的数据填反了,现在已更新。感谢你的指正~
以下是我用的jmeter script,使用5台虚拟机采用jmeter分布式的方式制造压力。
每次测试的总事务数为100000
业务端的逻辑,你可以在demo: https://github.com/actiontech/txle/tree/master/examples/sample-txle-springboot 中找到
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.1.1 r1855137">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="TXLE_long_hp" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="HIGH_PERFORMANCE" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">50</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">400</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration">200</stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HIGH_PERFORMANCE" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">10.186.18.127</stringProp>
<stringProp name="HTTPSampler.port">8000</stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/highPerformance</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</jmeterTestPlan>