Thread: Getting "ERROR: no unpinned buffers available" on HEAD, should I investigate?
Getting "ERROR: no unpinned buffers available" on HEAD, should I investigate?
From
Florian Pflug
Date:
Hi When I run my FK concurrency test suite on an unpatched HEAD, I'm getting quite a lot of "no unpinned buffers available"errors. Increasing shared_buffers from 32MB (the default) to 64MB makes the errors go away, as does setting fsync=off. I'm not sure how many buffers a particular backend can hold at any time. I'd have though it'd be something like one per relationand scan-in-progress, with indices counting as relations. In that case, with max_connections=100, my tests shouldn'tpin more than a couple of hundred buffers at a time. That, however, amounts to about 1MB or so of pinned buffers,so it shouldn't break with shared_buffers=32MB. I'm also confused by fsync=off making a difference. That should make writing dirty buffers slower, but would it affect thenumber of buffers pinned? In short, I'm wondering whether I might have hit a bug, or if I should just increase shared_buffers and move on. best regards, Florian Pflug
Re: Getting "ERROR: no unpinned buffers available" on HEAD, should I investigate?
From
Alvaro Herrera
Date:
Excerpts from Florian Pflug's message of mar dic 14 21:51:47 -0300 2010: > Hi > > When I run my FK concurrency test suite on an unpatched HEAD, I'm getting quite a lot of "no unpinned buffers available"errors. > > Increasing shared_buffers from 32MB (the default) to 64MB makes the errors go away, as does setting fsync=off. > > I'm not sure how many buffers a particular backend can hold at any time. I'd have though it'd be something like one perrelation and scan-in-progress, with indices counting as relations. In that case, with max_connections=100, my tests shouldn'tpin more than a couple of hundred buffers at a time. That, however, amounts to about 1MB or so of pinned buffers,so it shouldn't break with shared_buffers=32MB. > > I'm also confused by fsync=off making a difference. That should make writing dirty buffers slower, but would it affectthe number of buffers pinned? > > In short, I'm wondering whether I might have hit a bug, or if I should just increase shared_buffers and move on. I remember a report of this problem some time ago, and I wasn't able to explain it -- my calculations said, like yours, that the maximum amount of pinned buffers I expected shouldn't have been enough to consume the whole pool. It would be good to trace down to the root cause. -- Álvaro Herrera <alvherre@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support