In distributed computing systems, multiple computing devices operate concurrently to execute possibly different application programs. For example, multiple computing devices can each execute a hypervisor disposed to emulate one or more virtual machines, each virtual machine executing an application server on behalf of client devices which make requests of, and receive responses from, that application server. When two virtual machines communicate, those virtual machines generate virtual network messages, which are emulated by the hypervisors hosting those virtual machines.
One problem with known systems is that when virtual machines communicate, the virtual network messages they exchange are emulated using real network messages on a real communication network, if those virtual machines are hosted by distinct processing devices. These real network messages use communication bandwidth and other resources. This can produce high latency or low rates of communication between those virtual machines, and which can adversely effect other devices contending for use of the communication network. This problem can also occur when a virtual machine hosted by one device accesses resources maintained on another device, such as network connections, storage elements, and possibly other resources.