BDR, wal sender, high system cpu, mutex_lock_common

From: milist ujang <ujang(dot)milist(at)gmail(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: BDR, wal sender, high system cpu, mutex_lock_common
Date: 2017-09-29 23:07:06
Message-ID: CACG9ogzm-x3VP-7bBnKh-j-5W=wZ0UxwPvgtWAu=_icaHKgUFA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi all,

I've an environment 9.4 + bdr:
PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc (Debian
4.7.2-5) 4.7.2, 64-bit

kernel version:
3.2.0-4-amd64 #1 SMP Debian 3.2.65-1 x86_64 GNU/Linux

This is consolidation databases, in this machine there are around 250+ wal
sender processes.

top output revealed high system cpu:
%Cpu(s): 1.4 us, 49.7 sy, 0.0 ni, 48.8 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0 st

profiling cpu with perf:

perf top -e cpu-clock

Events: 142K cpu-clock
82.37% [kernel] [k] __mutex_lock_common.isra.5
4.49% [kernel] [k] do_raw_spin_lock
2.23% [kernel] [k] mutex_lock
2.16% [kernel] [k] mutex_unlock
2.12% [kernel] [k] arch_local_irq_restore
1.73% postgres [.] ValidXLogRecord
0.87% [kernel] [k] __mutex_unlock_slowpath
0.78% [kernel] [k] arch_local_irq_enable
0.63% [kernel] [k] sys_recvfrom

finally get which processes (wal senders) that are using mutexes:

perf top -e task-clock -p 55382

Events: 697 task-clock
88.08% [kernel] [k] __mutex_lock_common.isra.5
3.27% [kernel] [k] do_raw_spin_lock
2.34% [kernel] [k] arch_local_irq_restore
2.10% postgres [.] ValidXLogRecord
1.87% [kernel] [k] mutex_unlock
1.87% [kernel] [k] mutex_lock
0.47% [kernel] [k] sys_recvfrom

I think bdr is only reading wal file (current state is we behind current
wal lsn),
so why reading wal file needs mutex?

I wonder, is there kernel version has better handling mutexes?

--
regards

ujang jaenudin | DBA Consultant (Freelancer)
http://ora62.wordpress.com
http://id.linkedin.com/pub/ujang-jaenudin/12/64/bab

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message milist ujang 2017-10-01 01:36:15 Re: BDR, wal sender, high system cpu, mutex_lock_common
Previous Message Dave Cramer 2017-09-29 13:04:46 Re: Slow query in JDBC