The main goal of the thesis is developing a framework to understand and predict the amount of RAM resources required by a unikernels VM. By design, unikernel RAM size cannot be changed at runtime. Hence, techniques normally used to expand the available memory for full-blown VMs are not applicable (ballooning). This is a problem, because unikernel developers need to do multiple tests in order to calculate to minimum amount of memory required by a unikernels. This becomes quickly a tedious process as both code and input data changes. Overestimating the RAM requirements is also detrimental as it leads to greater provisioning costs (in the Cloud) or reduced efficiency in infrastructure characterized by high multi-tenancy and scarce resources (at the Edge - embedded boards).
The thesis is divided in multiple steps:
- Literature review
- Identify key metrics that can help assessing the requirements of a unikernel (input data, static code footprint, loaded libraries, code inspection techniques, past executions logs etc..)
- Develop a framework and build a prediction model
- Test the framework with existing unikernels and verify the goodness of the predictions
- Good knowledge of OSs, hypervisors, memory management
- Good knowledge of unikernels (MirageOS would be the best candidate)
- Familiar with basic machine learning tools
Good to have
- Good programming skills
- Up for a challenge
If you are interested into the thesis, please send meyour CV and exams transcript.
Vittorio Cozzolino - firstname.lastname@example.org