Skip to content
This repository has been archived by the owner on Jun 16, 2023. It is now read-only.

Performance Testing

heipacker edited this page Feb 12, 2014 · 5 revisions

Performance test of JStorm 0.9.0

JStorm 0.9.0 Performance is very good, the maximum sending speed of a single worker is 110,000 QPS when using netty, when using zeromq, the maximum speed is 120,000 QPS.

Conclusion

  • JStorm 0.9.0 10% faster than Storm 0.9.0 when using netty and JStorm netty plugin is stable, while the netty plugin of Storm is unstable.
  • In the case of using Zeromq, JStorm 0.9.0 30% faster than Storm 0.9.0.

Reason

  • Zeromq reduce a memory copy.
  • Increase deserialization thread.
  • Rewrite sampling code, significantly reducing the sampling impact.
  • Ack code optimization.
  • Optimize the performance of the buffer map.
  • Java is more bottom than clojure.

Testing

Testing Example

Testing example is https://github.com/longdafeng/storm-examples%20https:/github.com/longdafeng/storm-examples

Testing Environment

Five 16 cores, 98G physical machines

uname -a :
Linux dwcache1 2.6.32-220.23.1.tb735.el5.x86_64 #1 SMP Tue Aug 14 16:03:04 CST 2012 x86_64 x86_64 x86_64 GNU/Linux

Testing Results

JStorm with netty, Spout sending QPS is 110,000

jstorm.0.9.0.netty

Storm with netty, Spout sending QPS is 100,000 (screenshot is the QPS of upper application, not including the QPS of ack, Spout sending QPS exactly two times of the upper application QPS).

storm.0.9.0.netty

JStorm with zeromq, Spout sending QPS is 120,000

jstorm.0.9.0.zmq

Storm with zeromq, Spout sending QPS is 90,000 (screenshot is the QPS of the upper application, not including the QPS of ack, Spout sending QPS exactly two times of the upper application QPS).

storm.0.9.0.zmq

Clone this wiki locally