Re: pgbench: option delaying queries till connections establishment?

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: pgbench: option delaying queries till connections establishment?
Дата
Msg-id CADK3HHKzEjey2QxGeFFivbjLUb6RgyhLCESPBfWS5WZ+yabNkw@mail.gmail.com
обсуждение исходный текст
Ответ на pgbench: option delaying queries till connections establishment?  (Andres Freund <andres@anarazel.de>)
Ответы Re: pgbench: option delaying queries till connections establishment?  (Dave Cramer <davecramer@postgres.rocks>)
Список pgsql-hackers

Dave Cramer
www.postgres.rocks


On Tue, 16 May 2023 at 07:27, Andres Freund <andres@anarazel.de> wrote:
Hi,

I am trying to run a few benchmarks measuring the effects of patch to
make GetSnapshotData() faster in the face of larger numbers of
established connections.

Before the patch connection establishment often is very slow due to
contention. The first few connections are fast, but after that it takes
increasingly long. The first few connections constantly hold
ProcArrayLock in shared mode, which then makes it hard for new
connections to acquire it exclusively (I'm addressing that to a
significant degree in the patch FWIW).

But for a fair comparison of the runtime effects I'd like to only
compare the throughput for when connections are actually usable,
otherwise I end up benchmarking few vs many connections, which is not
useful. And because I'd like to run the numbers for a lot of different
numbers of connections etc, I can't just make each run several hour
longs to make the initial minutes not matter much.

Therefore I'd like to make pgbench wait till it has established all
connections, before they run queries.

Does anybody else see this as being useful?

If so, should this be done unconditionally? A new option? Included in an
existing one somehow?

Greetings, 
Andres Freund

I've recently run into something I am having difficulty understanding.

I am running pgbench with the following
pgbench -h localhost -c 100 -j 100 -t 2 -S -s 1000 pgbench -U pgbench --protocol=simple 

Without pgbouncer I get around 5k TPS
with pgbouncer I get around 15k TPS

Looking at the code connection initiation time should not be part of the calculation so I' puzzled why pgbouncer is making such a dramatic difference ?

Dave

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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: 'converts internal representation to "..."' comment is confusing
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: issue with meson builds on msys2