Let us now discuss the implications of running an industrial strength Java application server in a virtualized environment. Consider the following figure that illustrates the entire stack from the application server down to the hardware. Between the Java application and the hardware on which it ultimately executes, we have a JVM, a general purpose OS (for example Oracle Enterprise Linux), and a Hypervisor (such as Oracle VM).
The application server, for example Oracle WebLogic, is a typical Java application that needs a JVM to execute. The JVM provides abstraction against the operating system on which the application server is deployed. This is obviously because the same WebLogic shipment should run equally as well on Linux as on Windows or Solaris—this is the whole point of Java. The price of the convenience of write once / run anywhere is thus paid for by the JVM abstraction layer.
Under the JVM is an operating system that the JVM must know how to interact with. This requires...