Does anybody have any experience with how PostgreSQL performs when installed on a VMWare instance compared to real iron? Any noticeable differences? Any recommendations?


Depends on the CPU, RAM and HDD speeds/cache/usage, just like everything else. If you give the VM low resources and high demand, it will of course, perform poorly. Give enough resources it will maintain itself, however, a spike might throw it to the curb. So give enough to meet your standard demand, plus some extra to handle spikes throughout it's lifetime. Of course, you'll have to allocate better for the rest of the VMs on the same machine as well.


This really depends on way too many factors. VM's always have some processing overhead, but it depends on things like: disk subsystem memory processor VM hyperthreading host, or bare metal hypervisor? NIC? Switch load? Database load? RAID?

The real answer is that you can only know if you install a testbed and try it under real-world use.

Anecdotally in general VMWare isn't a huge performance hit on systems. If you have hardware that's on the HCL I'd really recommend using ESXi (free) to install and test out a testbed installation of the database and run some benchmarks. Anything else is pure speculation.

(Note...I was suggesting ESXi because it does have less overhead and tends to run a little bit faster; no "real" operating system overhead involved since the hypervisor is a tiny Linux install that literally takes 10 minutes to have up and running)

  • Just a note that the hypervisor in ESXi is not Linux based as far as I know. The service console in VMware ESX and vSphere is a modified RHEL console but the hypervisor is not. – Kevin Kuphal Aug 28 '09 at 21:10
  • Are you referring to the hypervisor as the application running the VM? Because it's definitely running the Linux kernel in the background. What I mean is that when you run ESXi it's a Virtual Machine Manager running on a stripped down Linux distro. Seen blogs.vmware.com/vmtn/2007/03/hypervisor_that.html . Didn't think the OP would care about that distinction though :-) – Bart Silverstrim Aug 28 '09 at 22:14

As always, the real answer to that is relative to the workload of the VM. But to give you an idea, in my environment we have several Windows 2003 VMs for test/training/QA running Postgres (don't ask me why they decided to run it on Windows). Those VMs only run Postgres, and nothing else, and perform pretty well with developers/QA/trainees hitting it all day (all with 1 vCPU and 1024MB RAM). Our production server, however, is a quad-core physical box with several GB of RAM. Underutilized of course, but the application (which is still in development) hasn't gone live yet so we have no clue what to expect as far as performance is concerned.

  • Also, the VMs are mentioned are on shared storage (4gb FC SAN). – Kai Aug 28 '09 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.