Scaling Parallelism Under CPU - Intensive Loads in Node.js

An increasing number of applications are using Node.js, a framework for asynchronous I/O, event-driven, server-side JavaScript. The backbone of Node.js is the single-threaded event loop. Therefore, computationally intensive tasks are bound to the performance of a single core. Modules with different characteristics have been built to provide parallelism and scaling. We evaluate the performance of some representative Node.js multiprocess and multi-thread techniques focusing on their scaling behavior on different environments. We present computation metrics using a compute-intensive task as a constant. Finally, we use statistical analysis to identify similarities and differences in performance with the end goal of providing recommendations on deployment.

[1]  Yan Solihin,et al.  Architectural characterization and similarity analysis of sunspider and Google's V8 Javascript benchmarks , 2012, 2012 IEEE International Symposium on Performance Analysis of Systems & Software.

[2]  Lionel Nkenyereye,et al.  Performance Evaluation of Server-side JavaScript for Healthcare Hub Server in Remote Healthcare Monitoring System , 2016, EUSPN/ICTH.

[3]  César A. F. De Rose,et al.  Performance Evaluation of Container-Based Virtualization for High Performance Computing Environments , 2013, 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[4]  Vijay Janapa Reddi,et al.  Microarchitectural implications of event-driven server-side web applications , 2015, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[5]  Miika Komu,et al.  Hypervisors vs. Lightweight Virtualization: A Performance Comparison , 2015, 2015 IEEE International Conference on Cloud Engineering.