Analysis of Distributed Systems Dynamics with Erlang Performance Lab
DOI:
https://doi.org/10.7494/csci.2018.19.2.2752Keywords:
software engineering, distributed computing and simulation, distributed systems monitoringAbstract
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.Downloads
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.