Please cite this article in press as: A. Garcia et al., Static analysis of cloud elasticity, Sci. Comput. Program. (2017), http://dx.
Highlights• A technique for the static analysis of resource utilization is proposed.• The analysis relies on a static type system that records program's resources behavior.• The proposed approach supports concurrency and explicit release operations.• A proof of soundness of the proposed type system and of the analysis is provided.
AbstractWe propose a static analysis technique that computes upper bounds of virtual machine usages in a concurrent language with explicit acquire and release operations of virtual machines. In our language it is possible to delegate other (ad-hoc or third party) concurrent code to release virtual machines (by passing them as arguments of invocations). Our technique is modular and consists of (i) a type system associating programs with behavioural types that record relevant information for resource usage (creations, releases, and concurrent operations), (ii) a translation function that takes behavioural types and returns cost equations, and (iii) an automatic off-the-shelf solver for the cost equations.A soundness proof of the type system establishes the correctness of our technique with respect to the cost equations. We have experimentally evaluated our technique using a cost analysis solver and we report some results.