Increasing the Performance of a Continuous. Optimisations by Load Balancing and Node Configurations

Publicerad

Typ

Examensarbete för masterexamen
Master Thesis

Modellbyggare

Tidskriftstitel

ISSN

Volymtitel

Utgivare

Sammanfattning

Continuous Integration (CI) is a software engineering practise where developers integrate, test, and build the system many times a day. The main objective with CI is to provide immediate feedback to developers after code changes, which requires an optimised CI server. This thesis aims to improve the time between the start and finish of a sequence of jobs in three ways: statistically analysing the best node configurations regarding the number of executors, dynamically assigning executors, and developing an improved load balancer. The load balancing problem is a more general problem that may be applicable for servers other than CI. The most suitable number of executors was found to be around 1.0-1.4 times the number of cores on the node, with the most significant improvement when the number of executors was equal to or above the number of cores. Dynamically assigning executors turned out to be an interesting substitute to static allocation; it reduced the load of the nodes and compensated better for changing workloads, at the cost of a increased execution time by approximately 5%. The improved load balancer was superior to the default load balancer in both execution time and load balancing according to our experiments. The results of this thesis can have a great effect on CI servers by improving the feedback time for developers and reducing the risk of overloading the nodes.

Beskrivning

Ämne/nyckelord

Informations- och kommunikationsteknik, Data- och informationsvetenskap, Information & Communication Technology, Computer and Information Science

Citation

Arkitekt (konstruktör)

Geografisk plats

Byggnad (typ)

Byggår

Modelltyp

Skala

Teknik / material

Index

item.page.endorsement

item.page.review

item.page.supplemented

item.page.referenced