A Performance Comparison of an Event-Driven Node.js Web Server and Multi-Threaded Web Servers

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Abstract: The goal of this study is to conduct a performance comparison betweenNode.js, Apache, Internet Information Services (IIS) and Go web servers in terms of throughput and memory consumption in both Input/Output (I/O)-intensive and computation-intensive situations. The computation-intensive tests consisted of calculating Fibonacci numbers, while the I/O-intensive tests consisted of querying a database. JMeter was used to send the requests and collect client- side data while Windows Performance Monitor was used to collect data on the resource use of the web servers on the server-side computer. The results showed that Go web server had the highest throughput and lowest memory consumption in all of the tests, with an average increase in throughput of 26% and an average decrease in memory consumption by 66% compared to the web servers placing second in the tests. IIS web server was the server that most often placed second behind Go. Contrary to previous studies Node.js performed worse than Apache in the I/O-intensive tests. The results also showed that Apache web server performed poorly in computation-intensive situations in terms of throughput. The conclusion is that the results indicate that Go web server performs better than Apache, IIS and Node.js web servers in both I/O- intensive and computation-intensive situations in terms of both throughput and memory consumption. 

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)