Node.js Performance Benchmarking and Analysis at Virtualbox, Docker, and Podman Environment Using Node-Bench Method

I Putu Agus Eka Pratama - Udayana University, Badung, Bali, 80232, Indonesia
I Made Sunia Raharja - Udayana University, Badung, Bali, 80232, Indonesia


Citation Format:



DOI: http://dx.doi.org/10.30630/joiv.7.4.01762

Abstract


As an asynchronous runtime environment (interpreter) for the development of scalable JavaScript-based network applications, it is necessary to know the performance of the web framework on Node.js in a virtualization-oriented development environment and a container-oriented development environment. This research aims to compare the performance of Node.js in several frameworks in VirtualBox, Docker, and Podman environments. The testing was carried out using some materials like a bench utility at Node Package Manager (NPM) involving the Adonis, Connect, Express, Fastify, Foxify, Hapi, Koa, Molecular, Plumier, Restify, and Sails frameworks, using Object Relational Mapping (ORM) and Raw Query Bookshelf, Knex, MySQL, MySQL2, and Sequelize at Ubuntu Linux operating system. The method research used in this research is the Node-Bench method with requests, latency, and throughput parameters. The testing results show that the best performance score is the Fastify framework with the Sequelize library (ORM) in a container-oriented development environment (Docker and Podman), and the worst performance score is the Express framework with the Mysql2 library (Raw Query) in a virtualization-oriented development environment (VirtualBox). Based on the testing results, developers who use Node.js are more advised to use the Fastify framework with the Sequelize library (ORM) in a container-oriented development environment (Docker or Podman) to obtain better performance. For further research, the implementation and testing at container-oriented development can use cloud-based service (IaaS cloud or PaaS Cloud) for the read-only immutable environment, scalability, and security reasons.Keywords— Docker, Node-Bench method, Node.js, Podman, VirtualBox.


Keywords


Docker; Node-Bench method; Node.js; Podman; VirtualBox.

Full Text:

PDF

References


D. Herron, Web Development: Server-Side Web Development Made Easy with Node 14 Using Practical Examples. Packt Publishing, 2020.

Y. P. D. and W. S. Raharjo, "Performance and Scalability Analysis of Node.js and PHP/Nginx Web Application," J. Inform., vol. 9, no. 2, 2014.

I. P. A. Eka Pratama, “Pengujian Performansi Lima Back-End JavaScript Framework Menggunakan Metode GET dan POST,” J. RESTI (Rekayasa Sist. dan Teknol. Informasi), vol. 4, no. 6, pp. 1216 – 1225, 2020.

A. C. Rompis and R. F. Aji, “Perbandingan Performa Kinerja Node.js, PHP, dan Python dalam Aplikasi REST,” CogITo Smart J., vol. 4, no. 1, pp. 171–187, 2018.

S. Maganahalli and P. R. R, "Comparison of JavaScript Frontend Frameworks and Web API Services," Int. Res. J. Eng. Technol., vol. 7, no. 6, pp. 108–112, 2020.

J. Ferreira, "A JavaScript Framework Comparison Based on Benchmarking A JavaScript Framework Comparison Based on Benchmarking Software Metrics and Environment Configuration Software Metrics and Environment Configuration," Dissertations, p. 159, 2018.

S. Delcev and D. Draskovic, "Modern JavaScript frameworks: A Survey Study," in 2018 Zooming Innovation in Consumer Technologies Conference, ZINC 2018, 2018, pp. 106–109.

A. B. Gizas, S. P. Christodoulou, and T. S. Papatheodorou, "Comparative Evaluation of JavaScript Frameworks," in WWW'12 - Proceedings of the 21st Annual Conference on World Wide Web Companion, 2012, pp. 513–514.

A. Gizas, S. P. Christodoulou, and T. S. Papatheodorou, "Quality and performance assessment of jQuery JavaScript framework," Proc. IADIS Int. Conf. WWW/Internet 2011, ICWI 2011, vol. 3, pp. 284–292, 2011.

S. S. Patil and P. S. D. Joshi, "Identification of Performance Improving Factors for Web Application by Performance Testing .," Int. J. Emerg. Technol. Adv. Eng., vol. 2, no. 8, pp. 433–436, 2012.

G. S. Mas Diyasa and G. S. Budiwitjaksono, "Comparative Analysis of Rest and GraphQL Technology on Nodejs-Based Api Development," Nusant. Sci. Technol. Proc., 2021.

H. Ardiansyah and A. Fatwanto, “Comparison of Memory Usage between REST API in Javascript and Golang,” Matrik J. Manajemen, Tek. Inform. dan Rekayasa Komput., vol. 22, no. 1, pp. 229–240, 2022.

G. Jadhav and F. Gonsalves, "Role of Node.js in Modern Web Application Development," Int. Res. J. Eng. Technol., vol. 7, no. 6, pp. 6145–6150, 2020.

A. A. Prayogi, M. Niswar, Indrabayu, and M. Rijal, "Design and Implementation of REST API for Academic Information System," in IOP Conference Series: Materials Science and Engineering, 2020, vol. 875, no. 1, p. 875.

K. I. D. Kyriakou and N. D. Tselikas, "Complementing JavaScript in High-Performance Node.js and Web Applications with Rust and WebAssembly," Electron., vol. 11, no. 19, 2022.

B. Basumatary and N. Agnihotri, "Benefits and Challenges of Using NodeJS," Int. J. Innov. Res. Comput. Sci. Technol., vol. 10, no. 3, pp. 67–70, 2022.

D. A. Sharma, A. Jain, A. Bahuguna, and D. Dinkar, "Comparison and Evaluation of Web Development Technologies in Node.js and Django," Int. J. Sci. Res., vol. 9, no. 12, pp. 1416–1420, 2019.

S. Sutanto, W. Gunawan, and F. Faeshal, “Arsitektur Container Docker Pada Aplikasi Expert Assist Dengan Teknologi Node.Js, Express Framework & Cloud Database Nosql Mongodb Atlas,” J. Sist. Inf. dan Inform., vol. 4, no. 1, pp. 73–89, 2021.

L. Mulana, K. Prihandani, A. Rizal, U. Singaperbanga, and K. Abstract, “Analisis Perbandingan Kinerja Framework Codeigniter Dengan Express.Js Pada Server RESTful Api,” J. Ilm. Wahana Pendidik., vol. 8, no. 16, pp. 316–326, 2022.

F. Effendy, Taufik, and B. Adhilaksono, "Performance Comparison of Web Backend and Database: A Case Study of Node.JS, Golang and MySQL, Mongo DB," Recent Adv. Comput. Sci. Commun., vol. 14, no. 6, pp. 1955–1961, 2019.

S. Tilkov and S. Vinoski, "Node.js: Using JavaScript to build high-performance network programs," IEEE Internet Comput., vol. 14, no. 6, pp. 80–83, 2010.

J. Raigoza and R. Thakkar, "Browser Performance of JavaScript Framework, SAPUI5 & jQuery," in Proceedings - 2016 International Conference on Computational Science and Computational Intelligence, CSCI 2016, 2017, pp. 1420–1421.

M. K. ANam, D. Sudyana, A. N. Ulfah, and N. Lizarti, “Optimalisasi Penggunaan VirtualBox Sebagai Virtual Computer Laboratory untuk Simulasi Jaringan dan Praktikum pada SMK Taruna Mandiri Pekanbaru,” J-PEMAS-Jurnal Pengabdi. Masy., vol. 1, no. 2, pp. 39–44, 2020.

Sutarti, A. P. Pancaro, and F. I. Saputra, “Implementasi IDS (Intrusion Detection System) Pada Sistem Keamanan Jaringan SMAN 1 Cikeusal,” J. PROSISKO, vol. 5, no. 1, pp. 1–8, 2018.

B. B. Rad, H. J. Bhatti, and M. Ahmadi, "An Introduction to Docker and Analysis of its Performance," IJCSNS Int. J. Comput. Sci. Netw. Secur., vol. 17, no. 3, pp. 228–235, 2017.

B. Gerardus, Docker Security: A Complete Guide. 5STARCooks Publisher, 2020.

C. Mukmin, T. Naraloka, and Q. H. Andriyanto, “Analisis Perbandingan Kinerja Layanan Container AS A Service (CAAS) Studi Kasus : Docker dan Podman,” Kumpul. J. Ilmu Komput., vol. 08, no. 2, 2021.

Nasution and L. Iswari, “Penerapan React JS Pada Pengembangan FrontEnd Aplikasi Startup Ubaform,” J. Autom. - UII, vol. 2, no. 2, pp. 193–200, 2021.

D. Guttman, "Fullstack Node.js The Complete Guide to Building Production Apps with Node.js," 2019. [Online]. Available: Fullstack.io.

H. Shah and T. R. Soomro, "Node.js Challenges in Implementation," Glob. J. Comput. Sci. Technol., vol. 17, no. E2, pp. 73–84, 2017.

Isaacs, "Node Bench Library," Github, 2022. [Online]. Available: https://github.com/isaacs/node-bench.

Mafintosh, "NPM JS. Nanobench Library," NPM, 2023. [Online]. Available: https://www.npmjs.com/package/nanobench.