Which kernel to use for server VM running on ESX

We run several ubuntu virtual machines on ESX server.

In ubuntu, there are various kernels available:

  • linux-generic-pae
  • linux-generic
  • linux-server
  • linux-virtual

Which one is the best choise for a virtual machine running on ESX?


Let's try to explain the main differences between the kernels that you listed:

  • linux-generic: This is the normal Ubuntu kernel. The one that the distro uses as default.

  • linux-generic-pae: This is the generic kernel with PAE enabled. It will let you use 4 Gb of RAM or more in a 32bit system. You don't want it if your using 64 bits or if you have less than 4Gb of RAM, as it has a small performance penalty.

  • linux-server: This is a kernel optimised for server use. This article has good info on the most important changes. They are over 50 configuration options changed. A gross approximation will be that this kernel will favor long background processes over interactive ones. It will not hesitate to freeze your mouse to give more power to your database number crunching or a file-write.

  • linux-virtual: This is the server kernel, with most drivers stripped. It only has the drivers needed to run as a guest in the most popular virtual machines like KVM, Xen, and VMWare. Source.

So there is no clear answer to your question, it all depends on the use of the virtual machines. If they are going to be traditional servers (not terminal servers) and you are never going to move them to real hardware, linux-virtual seems the best option.