Re: Potential "AIO / io workers" inter-worker locking issue in PG18?

From: Andres Freund <andres(at)anarazel(dot)de>
To: Marco Boeringa <marco(at)boeringa(dot)demon(dot)nl>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org, Thom Brown <thom(at)linux(dot)com>
Subject: Re: Potential "AIO / io workers" inter-worker locking issue in PG18?
Date: 2025-10-08 13:07:45
Message-ID: 7lvmrd3bb2l6dngxrjzvo3sqncoxudzys3a4prctnmlsjtmh3z@igiejxijzyfk
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On 2025-10-08 14:13:28 +0200, Marco Boeringa wrote:
> Looking at the "perf report --no-children" list, I noticed the high "LWLock"
> related CPU activity.

Yes, that is remarkably high. It likely indicates that there is significant
contention on some of the pages.

> Although I have already mentioned part of it, here are a few more
> observations of pgAdmin and pg_locks during the stuck situation:
>
> - pgAdmin shows 15 active session without wait events
>
> - pg_locks shows 228 locks taken, of which 218 are "fastpath"
>
> - Only 10 locks are not fastpath, and they refer to the "transactionid". I
> probably misunderstand this, but I would have expected to see 15
> transactionids, one for each database session? But maybe I have this
> wrong... There are no other transactionids. There *are* also 15 "virtualxid"
> locks visible, all "fastpath". All transactionid and virtualxid locks are
> "ExclusiveLock" type. The rest of the 228 locks are of "AccessShareLock" and
> "RowExclusiveLock" type.

lwlocks are not visible in pg_locks, they are lower-level / more granular.

> - If I look in the pg_stat_io view and regularly refresh it, I hardly see
> any changes in the table, except a few records (at least one related to
> autovacuum) now and then. This is also more or less confirmed by the disk
> RAIDs for tables and indexes, that show zero activity in Windows Task
> Manager (0 KB/s writes with 0 ms "average response time" (which doesn't
> happen in normal operation of the multi-threaded code where I do see almost
> continuous activity on the RAIDs).

Note that pg_stat_io is only updated at the end of a transaction, so just
looking at it continuously while there are longrunning statements isn't
necessarily going to tell you that much.

Greetings,

Andres Freund

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Marco Boeringa 2025-10-08 17:46:42 Re: Potential "AIO / io workers" inter-worker locking issue in PG18?
Previous Message Andres Freund 2025-10-08 13:04:03 Re: Potential "AIO / io workers" inter-worker locking issue in PG18?