Self-tuning servers within IBM cloud

Modern cloud-based applications are deployed as isolated processes in containers or virtual machines. These applications frequently require tuning by the application developer (or a DevOps engineer) in order to extract the requisite performance. For example, a Java application executing within a Docker container may have radically better performance if the host JVM runs with a specific garbage collector policy, or if the Docker container has the appropriate amount of memory and virtual CPU resources. This application-specific tuning is today a manual process. And, it may be unwieldy for engineers to perform this tuning for complex applications that execute across multiple machines and communicate through message passing.

In this project we will work with the IBM hybrid cloud product team to develop new algorithms and systems to improve the automatic tuning and management of cloud-based applications. Our focus will be initially on improving the performance of Java applications. We may later branch out to consider clusters of applications (e.g., Microservices) that must be tuned in aggregate to optimize overall system performance.

Faculty Supervisor:

Ivan Beschastnikh


Adalberto Ribeiro Sampaio Junior


IBM Canada


Computer science


Information and cultural industries


University of British Columbia



Current openings

Find the perfect opportunity to put your academic skills and knowledge into practice!

Find Projects