Analysis of Distributed Systems Dynamics with Erlang Performance Lab

Michał Ślaski, Wojciech Turek, Arkadiusz Gil, Bartosz Szafran, Mateusz Paciorek, Aleksander Byrski

Abstract


Modern, highly concurrent and large-scale systems require new methods for design, testing and monitoring. Their dynamics and scale require real-time tools, providing a holistic view of the whole system and the ability of showing a more detailed view when needed. Such tools can help identifying the causes of unwanted states, which is hardly possible with static analysis or metrics-based approach. In this paper a new tool for analysis of distributed systems in Erlang is presented. It provides real-time monitoring of system dynamics on different levels of abstraction. The tool has been used for analyzing a large-scale urban traffic simulation system running on a cluster of 20 computing nodes.

Keywords


software engineering, distributed computing and simulation, distributed systems monitoring

Full Text:

PDF

References


Allen J.: Effective Akka. O’Reilly Media, 2013.

Apache Ignite. https://ignite.apache.org.

Armstrong J.: Programming Erlang: Software for a Concurrent World. The Pragmatic Programmers, LLC, North Carolina, USA, 2013.

Basiri A., Behnam N., de Rooij R., Hochstein L., Kosewski L., Reynolds J., Rosenthal C.: Chaos engineering, IEEE Software, vol. 33(3), pp. 35–41, 2016.

Byrski A., Kisiel-Dorohinicki M.: Evolutionary Multi-Agent Systems: from inspirations to applications. Studies in Computational Intelligence, vol. 680. Springer, 2017.

Cesarini F., Vinoski S.: Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems, O’Reilly Media, 2016.

Elixir. https://elixir-lang.org/.

Erlang. http://www.erlang.org/.

Erlang Port Mapper Daemon. http://erlang.org/doc/man/epmd.html.

Erlang Runtime System. http://erlang.org/doc/apps/erts/introduction. html.

Erlang Term Storage. http://erlang.org/doc/man/ets.html.

Erlang tracer behavior. http://erlang.org/doc/man/erl_tracer.html.

escript. http://erlang.org/doc/man/escript.html.

Ford N.: Functional Thinking: Paradigm Over Syntax, 1st Edition, O’Reilly Media, 2014.

Hazelcast. https://hazelcast.com/.

Herlihy M., Shavit N.: The Art of Multiprocessor Programming, Morgan Kaufmann, 2008.

Horanyi G.: Intuition Engineering with Docker. https://medium.com/@ghoranyi/, 2016.

Infinispan. http://infinispan.org.

Isaacs K.E., Giménez A., Jusufi I., Gamblin T., Bhatele A., Schulz M., Hamann B., Bremer P.T.: State of the art of performance visualization. In: Proceedings of the 16th annual Eurographics Conference on Visualization (EuroVis 2014), 2014.

Kamon. http://kamon.io/documentation/kamon-akka/0.6.6/overview/.

Kazirod M., Korczynski W., Fernández E., Byrski A., Kisiel-Dorohinicki M., Topa P., Tyszka J., Komosinski M.: Agent-oriented Foraminifera Habitat Simulation. In: Procedia Computer Science, International Conference on Computational Science, ICCS 2015, vol. 51, pp. 1062–1071, 2015. https://doi.org/10. 1016/j.procs.2015.05.264.

Lamarche-Perrin R., Schnorr L.M., Vincent J.M., Demazeau Y.: Evaluating trace aggregation for performance visualization of large distributed systems. In: Performance Analysis of Systems and Software (ISPASS), 2014 IEEE International Symposium on, pp. 139–140. IEEE, 2014.

Li H., Thompson S.: Multicore profiling for Erlang programs using Percept2. In: Proceedings of the twelfth ACM SIGPLAN workshop on Erlang, pp. 33–42. ACM, 2013.

Lightbend intelligent Monitoring. https://www.lightbend.com/platform/production/intelligent-monitoring.

Lisp Flavoured Erlang. http://lfe.io/.

Mnesia. http://erlang.org/doc/man/mnesia.html.

Nagel K., Schreckenberg M.: A cellular automaton model for freeway traffic, Journal de Physique I, vol. 2(12), pp. 2221–2229, 1992.

Observer tool. http://erlang.org/doc/man/observer.html.

PL-Grid. http://www.plgrid.pl/.

React.js. https://facebook.github.io/react/.

Reynolds J., Rosenthal C.: Vizceral Open Source. https://medium. com/netflix-techblog/vizceral-open-source-acc0c32113fe, 2016, Netflix Technology Blog.

Rosà A., Chen L.Y., Binder W.: Profiling actor utilization and communication in Akka. In: Proceedings of the 15th International Workshop on Erlang, pp. 24–32. ACM, 2016.

Schnorr L.M., Huard G., Navaux P.O.A.: A hierarchical aggregation model to achieve visualization scalability in the analysis of parallel applications, Parallel Computing, vol. 38(3), pp. 91–110, 2012.

Slaski M.: Erlang Performance Lab. https://www.youtube.com/watch? v=ncedupb-Rqw, 2017. Slides available at https://speakerdeck.com/michalslaski/erlang-performance-lab.

Tóth M., Bozó I.: Detecting and Visualising Process Relationships in Erlang. In: Procedia Computer Science, vol. 29, pp. 1525–1534, 2014.

Turek W.: Erlang-based desynchronized urban traffic simulation for highperformance computing systems, Future Generation Computer Systems, vol. 79, pp. 645–652, 2018. http://dx.doi.org/https://doi.org/10.1016/j.future. 2017.06.003.

Vizceral. https://github.com/Netflix/vizceral.

Weisfeld M.: The Object-Oriented Thought Process. Addison Wesley Professional, 2013.

WombatOAM. https://www.erlang-solutions.com/products/wombat-oam.html.




DOI: http://dx.doi.org/10.7494/csci.2018.19.2.2752

Refbacks

  • There are currently no refbacks.