From: | Greg Smith <greg(at)2ndQuadrant(dot)com> |
---|---|
To: | Jon Nelson <jnelson+pgsql(at)jamponi(dot)net> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Andres Freund <andres(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: fallocate / posix_fallocate for new WAL file creation (etc...) |
Date: | 2013-07-01 04:52:08 |
Message-ID: | 51D10AF8.2010707@2ndQuadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 6/30/13 9:28 PM, Jon Nelson wrote:
> The performance of the latter (new) test sometimes seems to perform
> worse and sometimes seems to perform better (usually worse) than
> either of the other two. In all cases, posix_fallocate performs
> better, but I don't have a sufficiently old kernel to test with.
This updated test program looks reliable now. The numbers are very
tight when I'd expect them to be, and there's nowhere with the huge
differences I saw in the earlier test program.
Here's results from a few sets of popular older platforms:
RHEL5, ext3
method: classic. 10 open/close iterations, 10 rewrite in 22.6949s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 23.0113s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 22.4921s
method: classic. 10 open/close iterations, 10 rewrite in 23.2808s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 22.4736s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 23.9871s
method: classic. 10 open/close iterations, 10 rewrite in 22.4812s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 22.2393s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 23.6940s
RHEL6, ext4
method: classic. 10 open/close iterations, 10 rewrite in 56.0483s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 61.5092s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 53.8569s
method: classic. 10 open/close iterations, 10 rewrite in 57.0361s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 55.9840s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 64.9437sb
RHEL6, ext3
method: classic. 10 open/close iterations, 10 rewrite in 14.4080s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 16.1395s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 16.9657s
method: classic. 10 open/close iterations, 10 rewrite in 15.2825s
method: posix_fallocate. 10 open/close iterations, 10 rewrite in 16.5315s
method: glibc emulation. 10 open/close iterations, 10 rewrite in 14.8115s
The win for posix_fallocate is there in most cases, but it's pretty hard
to see in these older systems. That could be OK. As long as the
difference is no more than noise, and that is the case, this could be
good enough to commit. If there are significantly better results on the
new platforms, the old ones need to just not get worse.
--
Greg Smith 2ndQuadrant US greg(at)2ndQuadrant(dot)com Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support www.2ndQuadrant.com
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2013-07-01 04:56:18 | Re: Support for RANGE ... PRECEDING windows in OVER |
Previous Message | Josh Berkus | 2013-07-01 04:20:59 | Re: Eliminating PD_ALL_VISIBLE, take 2 |