Re: Postgresql in a Virtual Machine - Mailing list pgsql-performance

From Andrew Dunstan
Subject Re: Postgresql in a Virtual Machine
Date
Msg-id 5294C0C4.1080003@dunslane.net
Whole thread Raw
In response to Re: Postgresql in a Virtual Machine  (Boszormenyi Zoltan <zb@cybertec.at>)
List pgsql-performance
On 11/26/2013 08:51 AM, Boszormenyi Zoltan wrote:
> 2013-11-25 21:19 keltezéssel, Heikki Linnakangas írta:
>> On 25.11.2013 22:01, Lee Nguyen wrote:
>>> Hi,
>>>
>>> Having attended a few PGCons, I've always heard the remark from a few
>>> presenters and attendees that Postgres shouldn't be run inside a VM.
>>> That
>>> bare metal is the only way to go.
>>>
>>> Here at work we were entertaining the idea of running our Postgres
>>> database
>>> on our VM farm alongside our application vm's.  We are planning to
>>> run a
>>> few Postgres synchronous replication nodes.
>>>
>>> Why shouldn't we run Postgres in a VM?  What are the downsides? Does
>>> anyone
>>> have any metrics or benchmarks with the latest Postgres?
>>
>> I've also heard people say that they've seen PostgreSQL to perform
>> worse in a VM. In the performance testing that we've done in VMware,
>> though, we haven't seen any big impact. So I guess the answer is that
>> it depends on the specific configuration of CPU, memory, disks and
>> the software.
>
> We at Cybertec tested some configurations about 2 months ago.
> The performance drop is coming from the disk given to the VM guest.
>
> When there is a dedicated disk (pass through) given to the VM guest,
> PostgreSQL runs at a speed of around 98% of the bare metal.
>
> When the virtual disk is a disk file on the host machine, we've measured
> 20% or lower. The host used Fedora 19/x86_64 with IIRC a 3.10.x Linux
> kernel
> with EXT4 filesystem (this latter is sure, not IIRC). The effect was
> observed
> both under Qemu/KVM and Xen.
>
> The virtual disk was not pre-allocated, since it was the default setting,
> i.e. space savings preferred over speed. The figure might be better with
> a pre-allocated disk but the filesystem journalling done twice (both
> in the
> host and the guest) will have an effect.


Not-pre-allocated disk-file backed is just about the worst case in my
experience.

Try pre-allocated VirtIO disks on an LVM volume group - you should get
much better performance.

cheers

andrew



pgsql-performance by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Postgresql in a Virtual Machine
Next
From: David Boreham
Date:
Subject: Re: Postgresql in a Virtual Machine