Re: Postgresql in a Virtual Machine

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Boszormenyi Zoltan <zb(at)cybertec(dot)at>
Cc: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Lee Nguyen <leemobile(at)gmail(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Postgresql in a Virtual Machine
Date: 2013-11-26 15:39:48
Message-ID: 5294C0C4.1080003@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message David Boreham 2013-11-26 16:29:05 Re: Postgresql in a Virtual Machine
Previous Message Andrew Dunstan 2013-11-26 15:31:32 Re: Postgresql in a Virtual Machine