1. A method for pre-provisioning a virtual machine instance, wherein the method comprises: deriving a weight function for multiple virtual machine requests based on historical data of the multiple virtual machine requests to create a weighted virtual machine request for each of the multiple requests, wherein historical data of the multiple virtual machine requests comprises frequency data; capturing at least one inter-arrival pattern of requests, and applying the at least one pattern to each of the multiple weighted virtual machine requests to create a prioritized ordering of the multiple weighted virtual machine requests; and pre-provisioning at least one instance of a virtual machine image based on the prioritized ordering of the multiple weighted virtual machine requests, wherein pre-provisioning comprises caching the at least one instance of the virtual machine image in a database; wherein at least one of the steps is carried out by a computer device.