Abstract
Nowadays, numerous programming languages and frameworks offer concurrency based on the actor model. Among the actor libraries for the Java Virtual Machine, Akka is the most used one, as it is employed in various parallel and distributed applications and frameworks. Unfortunately, despite the spread of actors libraries, Akka in particular, existing profiling tools are not very effective at identifying performance drawbacks in applications using actors. In this tool paper, we aim at filling this gap by presenting AkkaProf, a profiling tool for Akka actors. AkkaProf provides detailed metrics on actor utilization and on the communication between them, two fundamental aspects of actor-based applications that are overlooked by other profilers. AkkaProf aids performance analysis in several applications and frameworks in both parallel and distributed environments.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
Akka actors have replaced Scala actors since Scala 2.10.
- 3.
All evaluation results are measured on a multicore platform (Intel Xeon E5-2680 2.7 GHz with 16 cores, 128 GB of RAM, CPU frequency scaling and Turbo mode disabled, Oracle JDK 1.8.0_66 b17 Hotspot Server VM 64-bit, Ubuntu Linux Server 64-bit version 14.04.3 64-bit). Each Spark o Flink worker is deployed on one such platform.
- 4.
We applied the algorithm on a reduced set of 20k webpages taken from a public data source [18].
- 5.
With this term, we refer to the Pearson product-moment correlation coefficient.
References
Hewitt, C., Bishop, P., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: IJCAI, pp. 235–245 (1973)
Tasharofi, S., Dinges, P., Johnson, R.E.: Why do scala developers mix the actor model with other concurrency models? In: Castagna, G. (ed.) ECOOP 2013. LNCS, vol. 7920, pp. 302–326. Springer, Heidelberg (2013). doi:10.1007/978-3-642-39038-8_13
Stutz, P., Bernstein, A., Cohen, W.: Signal/collect: graph algorithms for the (semantic) web. In: Patel-Schneider, P.F., Pan, Y., Hitzler, P., Mika, P., Zhang, L., Pan, J.Z., Horrocks, I., Glimm, B. (eds.) ISWC 2010. LNCS, vol. 6496, pp. 764–780. Springer, Heidelberg (2010). doi:10.1007/978-3-642-17746-0_48
Zaharia, M., Chowdhury, M., Das, T., Dave, A., Ma, J., McCauley, M., Franklin, M.J., Shenker, S., Stoica, I.: Resilient distributed datasets: a fault-tolerant abstraction for in-memory cluster computing. In: NSDI, pp. 2:1–2:14 (2012)
Apache: Flink. https://flink.apache.org
Lightbend Monitoring. https://www.lightbend.com/products/monitoring
Akka Tracing. https://github.com/levkhomich/akka-tracing
YourKit. https://www.yourkit.com
VisualVM. https://visualvm.java.net
Bestavros, A.: Load profiling in distributed real-time systems. Inf. Sci. 101, 1–27 (1997)
Vetter, J.: Dynamic statistical profiling of communication activity in distributed applications. In: SIGMETRICS, pp. 240–250 (2002)
Marek, L., Villazón, A., Zheng, Y., Ansaloni, D., Binder, W., Qi, Z.: DiSL: a domain-specific language for bytecode instrumentation. In: AOSD, pp. 239–250 (2012)
Tallent, N.R., Adhianto, L., Mellor-Crummey, J.M.: Scalable identification of load imbalance in parallel executions using call path profiles. In: SC, pp. 1–11 (2010)
Yu, M., Greenberg, A., Maltz, D., Rexford, J., Yuan, L., Kandula, S., Kim, C.: Profiling network performance for multi-tier data center applications. In: NSDI, pp. 57–70 (2011)
Fonseca, R., Porter, G., Katz, R.H., Shenker, S., Stoica, I.: X-trace: a pervasive network tracing framework. In: NSDI, pp. 271–284 (2007)
Binder, W., Hulaas, J.G., Villazón, A.: Portable resource control in java. In: OOPSLA, pp. 139–155 (2001)
Imam, S.M., Sarkar, V.: Savina - an actor benchmark suite: enabling empirical evaluation of actor libraries. In: AGERE!, pp. 67–80 (2014)
Backstrom, L., Huttenlocher, D., Kleinberg, J., Lan, X.: Group formation in large social networks: membership, growth, and evolution. In: KDD, pp. 44–54 (2006)
Rosà, A., Chen, L.Y., Binder, W.: Profiling actor utilization and communication in Akka. In: Erlang, pp. 1–9 (2016)
Acknowledgments
This work has been supported by the Swiss National Science Foundation (project 200021_141002) and by the European Commission (contract ACP2-GA-2013-605442).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Rosà, A., Chen, L.Y., Binder, W. (2016). AkkaProf: A Profiler for Akka Actors in Parallel and Distributed Applications. In: Igarashi, A. (eds) Programming Languages and Systems. APLAS 2016. Lecture Notes in Computer Science(), vol 10017. Springer, Cham. https://doi.org/10.1007/978-3-319-47958-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-47958-3_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-47957-6
Online ISBN: 978-3-319-47958-3
eBook Packages: Computer ScienceComputer Science (R0)