The impact of programming languages on REST-
performance should not be underestimated. Al-
though Go is meant to be a very performant language
for network I/O, ppbench turned out that Go is only
the best choice for messages smaller than half of a
TCP standard receive window. In all other cases we
identified better performances with other languages.
SDN increases flexibility at the cost of decreased per-
formance in microservice architectures. SDN on low
core machine types can even half the performance!
Nevertheless, on high core virtual machine types
SDN impacts can be neglected compared with pro-
gramming language impact.
Three of four analyzed programming languages
showed significant non-continous network behavior
which seem to be aligned to TCP standard receive
window sizes on systems under test. We did not fig-
ured out whether this was on client or server (or both)
sides. However, this insight (subject to ongoing inves-
tigations) could be used to tune some services simply
by changing the TCP window size on the host system.
Finally, our contribution can be used as reference by
other researchers to show how new approaches in mi-
croservice design can improve performance.
ACKNOWLEDGEMENTS
This study was funded by German Federal Ministry of Edu-
cation and Research (03FH021PX4). We thank René Peinl
for his valuable feedback. We used research grants by cour-
tesy of Amazon Web Services. We thank Lübeck University
(ITM) and fat IT solution GmbH for their general support.
REFERENCES
Apache Software Foundation (2015). ab -
Apache HTTP server benchmarking tool.
http://httpd.apache.org/docs/2.2/programs/ab.html.
Berkley Lab (2015). iPerf - The network bandwidth mea-
surement tool. https://iperf.fr.
Bormann, D., Braden, B., Jacobsen, V., and
R.Scheffenegger (2014). RFC 7323,
TCP Extensions for High Performance.
https://tools.ietf.org/html/rfc7323.
CoreOS (2015). Flannel. https://github.com/coreos/flannel.
Docker Inc. (2015). Docker. https://www.docker.com.
Fielding, R. T. (2000). Architectural Styles and the Design
of Network-based Software Architectures. PhD thesis.
Hindman, B., Konwinski, A., Zaharia, M., Ghodsi, A.,
Joseph, A. D., Katz, R. H., Shenker, S., and Stoica, I.
(2011). Mesos: A platform for fine-grained resource
sharing in the data center. In NSDI, volume 11.
HP Labs (2008). httperf - A tool for
measuring web server performance.
http://www.hpl.hp.com/research/linux/httperf/.
Kratzke, N. (2014). Lightweight virtualization cluster -
howto overcome cloud vendor lock-in. Journal of
Computer and Communication (JCC), 2(12).
Kratzke, N. and Quint, P.-C. (2015a). About Automatic
Benchmarking of IaaS Cloud Service Providers for a
World of Container Clusters. Journal of Cloud Com-
puting Research, 1(1):16–34.
Kratzke, N. and Quint, P.-C. (2015b). How to operate con-
tainer clusters more efficiently? International Journal
On Advances in Networks and Services, 8(3&4):203–
214.
netperf.org (2012). The Public Netperf Homepage.
http://www.netperf.org.
Newman, S. (2015). Building Microservices. O’Reilly Me-
dia, Incorporated.
R Core Team (2014). R: A Language and Environment for
Statistical Computing. R Foundation for Statistical
Computing, Vienna, Austria.
Satzger, B., Hummer, W., Inzinger, C., Leitner, P., and
Dustdar, S. (2013). Winds of change: From vendor
lock-in to the meta cloud. IEEE Internet Computing,
17(1):69–73.
Schmid, H. and Huber, A. (2014). Measuring a Small Num-
ber of Samples, and the 3v Fallacy: Shedding Light on
Confidence and Error Intervals. Solid-State Circuits
Magazine, IEEE, 6(2):52–58.
Sun Microsystems (2012). uperf - A network performance
tool. http://www.uperf.org.
Talukder, A., Zimmerman, L., and A, P. (2010). Cloud eco-
nomics: Principles, costs, and benefits. In Antonopou-
los, N. and Gillam, L., editors, Cloud Comput-
ing, Computer Communications and Networks, pages
343–360. Springer London.
Velásquez, K. and Gamess, E. (2009). A Comparative Anal-
ysis of Network Benchmarking Tools. Proceedings
of the World Congress on Engineering and Computer
Science 2009 Vol I.
Verma, A., Pedrosa, L., Korupolu, M. R., Oppenheimer, D.,
Tune, E., and Wilkes, J. (2015). Large-scale cluster
management at Google with Borg. In Proceedings of
the European Conference on Computer Systems (Eu-
roSys), Bordeaux, France.
Weave Works (2015). Weave.
https://github.com/weaveworks/weave.
ppbench - A Visualizing Network Benchmark for Microservices
231