Efficiency and performance architecture optimization of Node.js applications under parallel and scalable conditions

dc.contributor.advisorKent, Kenneth B.
dc.contributor.authorPatrou, Maria
dc.date.accessioned2023-09-07T16:26:27Z
dc.date.available2023-09-07T16:26:27Z
dc.date.issued2022-04
dc.description.abstractTo meet high quality standards, applications are expected not only to run correctly but also efficiently. During the application-development-process, quality attributes, such as performance, scalability and efficiency, are evaluated to fulfill the desired expectations. Code that utilizes software and hardware components efficiently should lead to high quality systems. An increasing number of applications are written in Node.js, which uses an event driven model with a single-threaded event loop and provides asynchronous and nonblocking I/O operations. To increase application performance, additional instances to perform compute-intensive tasks can be instantiated utilizing modules/libraries that enable parallelism. By increasing the utilization of resources/instances running in parallel at the hardware/software level, we can increase performance, at the expense of energy consumption. However, various power management techniques exist, such as the CPU dynamic voltage and frequency scaling technique (DVFS) that focus on regulating the processors’ energy consumption. First, we investigate Node.js modules that enable parallelism. In order to assist software engineers in choosing the most appropriate module that is expected to be executed efficiently, we conduct an empirical study to investigate the modules’ characteristics and functionality, considering system variances. Thus, we present and apply an evaluation methodology focusing on four aspects: compute-intensive task execution, sharing data, communication and overhead of shared memory techniques and instance spawning, as we scale workers/jobs. Second, we investigate the energy consumption and runtime performance of web requests with the CPU dynamic voltage and frequency scaling technique (DVFS). We build a CPU frequency scaling/energy aware system to enable CPU frequency control within Node.js applications, including a benchmark suite, and collect energy information. As we scale the CPU frequency, we measure the energy consumption and runtime of different web requests, analyze their performance and extract patterns. Third, we use the above information on CPU frequency optimality, expand the system and build a CPU frequency scaling policy for Node.js web applications that promotes “green” and high-performing requests and enables customizations on their execution profile. Finally, we perform an energy-runtime-financial cost analysis, which shows that our policy with the proposed configurations is an energy-efficient approach compared to the OS scaling governors.
dc.description.copyright© Maria Patrou, 2022
dc.format.extentxvi, 228
dc.format.mediumelectronic
dc.identifier.urihttps://unbscholar.lib.unb.ca/handle/1882/37350
dc.language.isoen
dc.publisherUniversity of New Brunswick
dc.relationNatural Sciences and Engineering Research Council of Canada (NSERC)
dc.relationNew Brunswick Innovation Foundation
dc.rightshttp://purl.org/coar/access_right/c_abf2
dc.subject.disciplineComputer Science
dc.titleEfficiency and performance architecture optimization of Node.js applications under parallel and scalable conditions
dc.typedoctoral thesis
oaire.license.conditionother
thesis.degree.disciplineComputer Science
thesis.degree.grantorUniversity of New Brunswick
thesis.degree.leveldoctorate
thesis.degree.namePh.D.

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Maria Patrou - Dissertation.pdf
Size:
68.33 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.13 KB
Format:
Item-specific license agreed upon to submission
Description: