On 11/07/14 20:22, Andres Freund wrote:
On 2014-07-11 12:40:15 +1200, Mark Kirkwood wrote:
Postgres 9.4 beta
rwlock patch
pgbench scale = 2000
On that scale - that's bigger than shared_buffers IIRC - I'd not expect
the patch to make much of a difference.
Right - we did test with it bigger (can't recall exactly how big), but
will retry again after setting the numa parameters below.
#
8.82% postgres [kernel.kallsyms] [k]
_raw_spin_lock_irqsave
|
--- _raw_spin_lock_irqsave
|
|--75.69%-- pagevec_lru_move_fn
| __lru_cache_add
| lru_cache_add
| putback_lru_page
| migrate_pages
| migrate_misplaced_page
| do_numa_page
| handle_mm_fault
| __do_page_fault
| do_page_fault
| page_fault
So, the majority of the time is spent in numa page migration. Can you
disable numa_balancing? I'm not sure if your kernel version does that at
runtime or whether you need to reboot.
The kernel.numa_balancing sysctl might work. Otherwise you probably need
to boot with numa_balancing=0.
It'd also be worthwhile to test this with numactl --interleave.
That was my feeling too - but I had no idea what the magic switch was to
tame it (appears to be in 3.13 kernels), will experiment and report
back. Thanks again!
Mark