Re: Blocking excessively in FOR UPDATE

Поиск
Список
Период
Сортировка
От Shaun Thomas
Тема Re: Blocking excessively in FOR UPDATE
Дата
Msg-id 4EB42E5F.5080502@peak6.com
обсуждение исходный текст
Ответ на Re: Blocking excessively in FOR UPDATE  (Claudio Freire <klaussfreire@gmail.com>)
Ответы Re: Blocking excessively in FOR UPDATE  (Claudio Freire <klaussfreire@gmail.com>)
Список pgsql-performance
On 11/04/2011 12:22 PM, Claudio Freire wrote:

> bgwriter_delay = 1000ms
> wal_writer_delay=2000ms
> commit_delay=10000

!?

Maybe someone can back me up on this, but my interpretation of these
settings suggests they're *way* too high. That commit_delay especially
makes me want to cry. From the manual:

"Setting commit_delay can only help when there are many concurrently
committing transactions, and it is difficult to tune it to a value that
actually helps rather than hurt throughput."

Meaning it may halt all of your commits up to *ten seconds* if it
doesn't think there was enough activity to warrant a write. Ouch.

Your bgwriter_delay and wal_writer_delay settings are equally odd.
You've made the background writer so passive that when it does finally
run, it's going to have a ton of work to do, causing giant write spikes.
I'm not sure whether or not this also causes compounding problems with
locks and backend write delays.

> checkpoint complete: wrote 589 buffers (3.6%); 0 transaction log
> file(s) added, 0 removed, 8 recycled; write=590.325 s, sync=0.055 s,
> total=590.417 s
>
> 590s seems an awful lot for 589 buffers.

You're misinterpreting this. The checkpoint completion target is
multiplied against your checkpoint timeout. 590 seconds is roughly ten
minutes, and for 589 buffers, it wrote one per second. That's about as
slow as it can possibly write that many buffers. It had *up to* 24
minutes, and if it had more buffers available to write, it would have
written them. The number you really care about is "sync=0.055 s" which
is how much time the controller spent syncing that data to disk.

If you're having real problems writing or lock delays due to IO stalls,
you'll see that sync parameter shoot way up. This can also be elevated
in certain NVRAM-based solutions. Once you start seeing whole seconds,
or minutes, it might actually matter.

--
Shaun Thomas
OptionsHouse | 141 W. Jackson Blvd. | Suite 800 | Chicago IL, 60604
312-676-8870
sthomas@peak6.com

______________________________________________

See http://www.peak6.com/email-disclaimer/ for terms and conditions related to this email

В списке pgsql-performance по дате отправления:

Предыдущее
От: Claudio Freire
Дата:
Сообщение: Re: Blocking excessively in FOR UPDATE
Следующее
От: Claudio Freire
Дата:
Сообщение: Re: Blocking excessively in FOR UPDATE