FreeBSD 10 and PostgreSQL 9.3 scalability issues

Sean Chittenden sean at chittenden.org
Wed May 21 17:17:48 UTC 2014


> I did some tests with zfs, and results where appallingly bad, but that was with db size > ram. 
> 
> I think the model used by PostgreSQL, as most databases, are very disk block centric. Using zfs makes it hard to get good performance. But this was some time ago, maybe things have improved. 

I have some hardware that I ran with last week wherein I was *not* able to reproduce any performance difference between ZFS and UFS2. On both UFS2 and ZFS I was seeing the same performance when using a a RAID10 / set of mirrors. I talked with the Dragonfly folk who originally performed these tests and they also saw the same thing: no real performance difference between ZFS and UFS. I ran my tests on a host with 16 drive, 10K SAS, 192GB RAM. I also created a kernel profiling image and ran the 20 concurrent user test under kgprof(1), dtrace, and pmcstat and have the results available:

http://people.freebsd.org/~seanc/pg9.3-fbsd10-profiling/

There are some investigations that are ongoing as a result of these findings. The dfly methodology was observed when generating these results. Stay tuned. -sc


--
Sean Chittenden
sean at chittenden.org


> 
> Palle
> 
>> 21 maj 2014 kl. 18:33 skrev Gezeala M. Bacuño II <gezeala at gmail.com>:
>> 
>> Gotcha.
>> 
>> I've been testing using pgbench on FreeBSD 9.0 release + ZFS + pg 9.3.. I
>> can reach the freebsd 10 stats on the pdf files if the dataset <RAM. It
>> gets way lower if the dataset >RAM. Test was done on pools without L2ARC
>> and with/without compression. I also remember increasing a vm.pmap sysctl.
>> I'm out of the office right now sick so I can't provide the stats but yes,
>> with mmap it is pretty bad..
>> 
>> Keep us in the loop. I'd like to help on getting the performance data they
>> need.
>>> On May 20, 2014 11:16 PM, "Palle Girgensohn" <girgen at pingpong.net> wrote:
>>> 
>>> I got no response about how to grab performance data.
>>> 
>>> The PostgreSQL team is also making an effort by setting up machines
>>> dedicated to performance measuring and tuning.
>>> 
>>> And freebsd guys and PostgreSQL guys are apparently meeting at pgcon this
>>> week.
>>> 
>>> We'll see where that leads.
>>> 
>>> In the mean time, if I for some pointers on how to grab performance data,
>>> I could do some more tests.
>>> 
>>> Palle
>>> 
>>> 21 maj 2014 kl. 02:13 skrev Gezeala M. Bacuño II <gezeala at gmail.com>:
>>> 
>>> 
>>> Do you guys have any updates on this?
>>> 
>>> --
>>> 
>>> regards
>>> 
>>> gezeala bacuño II
>>> 
>>> 
>>> On Tue, Apr 22, 2014 at 11:52 PM, Palle Girgensohn <girgen at pingpong.net>wrote:
>>> 
>>>> 
>>>> 
>>>>> 23 apr 2014 kl. 01:04 skrev Adrian Chadd <adrian at freebsd.org>:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> Are you able to repeat these tests (for both 9.2 and 9.3) whilst
>>>>> grabbing some performance data from lock profiling and hwpmc?
>>>> 
>>>> I sure can, but I'd love some pointers as to how this is done. Please? :-)
>>>> 
>>>>> 
>>>>> The benchmarking is great but it doesn't tell us enough information as
>>>>> to "why" things behave poorly compared to Linux and why the mmap drop
>>>>> isn't so great.
>>>> 
>>>> 
>>>> As per the discussion on postresql-hackers, the regression between pg9.2
>>>> and pg9.3, which includes the sysv->mmap shift, *might* also exist, at
>>>> least partly, on Linux as well.
>>>> 
>>>> The initial post in *this* thread does however indicate that freebsd
>>>> performs poorer than Linux and dragonflybsd, but does not really compare
>>>> PostgreSQL versions.
>>>> 
>>>> Just so we're not pursuing the wrong problem here, let's be open minded
>>>> about the definition of the problem. :-)
>>>> 
>>>>> 
>>>>> What about with more clients? 64? 128? 256?
>>>> 
>>>> My test went to 80. I can go higher as well, though other sources say 50
>>>> is a reasonable limit for PostgreSQL.
>>>> 
>>>> Palle
>>>> 
>>>> 
>>>>> 
>>>>> 
>>>>> Thanks!
>>>>> 
>>>>> 
>>>>> 
>>>>> -a
>>>>> 
>>>>> 
>>>>>> On 21 April 2014 14:11, Palle Girgensohn <girgen at pingpong.net> wrote:
>>>>>> 
>>>>>> 
>>>>>>> Den torsdagen den 20:e mars 2014 kl. 00:33:10 UTC+1 skrev Sean
>>>> Chittenden:
>>>>>>> 
>>>>>>>> As far as I know, the test was done on both UFS2 and ZFS and the
>>>>>>>> difference was marginal.
>>>>>>> 
>>>>>>> As Adrian pointed out, there is an mmap(2) mutex in the way. Starting
>>>> in
>>>>>>> PostgreSQL 9.3, shared buffers are allocated out of mmap(2) instead
>>>> of shm.
>>>>>>> shm is only used to notify the PostgreSQL postmaster that a child
>>>> process
>>>>>>> exited/crashed (when a pid detaches from a shm segment, there is a
>>>> kernel
>>>>>>> event, but there is no kernel event when detaching from an mmap(2)
>>>> region).
>>>>>>> -sc
>>>>>>> 
>>>>>>> http://www.postgresql.org/docs/9.3/static/release-9-3.html#AEN115039
>>>>>>> 
>>>>>>> 
>>>>>>>>>> Just want to share these pgbench results done by DragonFlyBSD, and
>>>>>>> would
>>>>>>>>>> like some input on why these numbers look so bad and what can be
>>>> done
>>>>>>> to
>>>>>>>>>> improve (ie. kernel tunables etc) the performance.
>>>> http://lists.dragonflybsd.org/pipermail/users/attachments/20140310/4250b961/attachment-0001.pdf
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Do you have the ability to test with FreeBSD 8.x and 9.x to see if
>>>> this
>>>>>>> is
>>>>>>>>> regression?
>>>>>>>>> 
>>>>>>>>> Also you don't mention the FS used in each case, so I'm wondering if
>>>>>>> you
>>>>>>>>> used a ZFS install of FreeBSD which could help to explain things.
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Sean Chittenden
>>>>>>> se... at chittenden.org <javascript:>
>>>>>> Hi,
>>>>>> 
>>>>>> There is a fresh thread about this in postgresql-hackers [1].
>>>>>> 
>>>>>> There are two parallel approaches suggested there, where one is to
>>>> have an
>>>>>> option to continue using the old SYSV shared memory in PostgreSQL, and
>>>> the
>>>>>> other is the suggestion that "somebody needs to hold the FreeBSD folks'
>>>>>> feet to the fire about when we can expect to see a fix from their
>>>> side."
>>>>>> 
>>>>>> Looking at the original post in this thread, it seems to me that
>>>> FreeBSD
>>>>>> has scalability problems beyond what the SYSV vs mmap change in
>>>> PostgreSQL
>>>>>> introduces? Check my test of PostgreSQL 9.2 vs 9.3 on FreeBSD 10.0 at
>>>> [1].
>>>>>> The difference between PG92 and PG93 is not huge, ~17%. The difference
>>>>>> between FreeBSD and the other OS:es in this thread's original post's
>>>>>> performance chart seems to be about a lot more?
>>>>>> 
>>>>>> Palle
>>>>>> 
>>>>>> [1]
>>>> http://www.postgresql.org/message-id/2AE143D2-87D3-4AD1-AC78-CE2258230C05@FreeBSD.org
>>>>>> _______________________________________________
>>>>>> freebsd-performance at freebsd.org mailing list
>>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-performance
>>>>>> To unsubscribe, send any mail to "
>>>> freebsd-performance-unsubscribe at freebsd.org"
>>>> _______________________________________________
>>>> freebsd-performance at freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-performance
>>>> To unsubscribe, send any mail to "
>>>> freebsd-performance-unsubscribe at freebsd.org"
>> _______________________________________________
>> freebsd-performance at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-performance
>> To unsubscribe, send any mail to "freebsd-performance-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-performance at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-performance
> To unsubscribe, send any mail to "freebsd-performance-unsubscribe at freebsd.org"



More information about the freebsd-performance mailing list