PostgreSQL/FreeBSD performance and scalability on a 40-core machine [pdf]
kib.kiev.ua
kib.kiev.ua
Some memory debugging options were inadvertently left enabled in the original investigation. This report covers the testing redone with the diagnostics disabled.
Two things I wonder about:
1. Is the extra overhead of the fast path worth incurring on every call for most use cases or should you only stall with a Postgres system?
2. What were the false starts in his analysis? How did he bail from them? What are the insurmountable bottlenecks?
The lock reduction work in the buffer cache and page queues should apply more generally.
I'm a huge user and fan of FrerBSD.
Given the remarkably poor performance of FreeBSD, I hope the OP link and the link below bring focused attention to freebsd to resolve these bottlenecks.
[1] http://lists.dragonflybsd.org/pipermail/users/attachments/20...
Old CPUs without power savings features are great for testing multi-threaded applications. Modern CPU might decide to switch-off some parts during test, rendering result inconclusive.
This beasts power requirement looks scary, but with some care it runs in ordinary house. I use separate AC circuit usually used for air-conditioning. It is very loud (like hoover). I usually run it about 30 minutes a day.
I work on concurrent Java stuff. Fork-join, CAS, low latency databases etc. I mostly use this machine to verify things I read somewhere. I found that about 60% of things I read about concurrency is wrong. For example messaging (actors) are not really that great compared to well designed threads with locks & CAS.
Right now I want to replace memory allocator with global lock (linearly scales up to 6 cores) with CAS version, which should scale up to 16 cores.
> 3 Samsung SSD 840 in single-volume RAID-1 configuration.
A 3-way mirrored RAID? That seems like an odd setup, especially for a benchmark. I guess (?) reads could be faster with an additional drive, but the system had 1 TB of memory so would pgbench create a working set beyond that anyway?Think about it, one drive suddenly dies and you need to resilver/resync a new drive. What if there are some bad blocks on the existing drive that's left?
With ZFS and 3 mirrored drives, these bad blocks would most likely be healed during the resilver operation.
This is why I have a backup system that I zfs send to.