Thread: Slow down dev database transactions/second for testing?

Slow down dev database transactions/second for testing?

From
Richard Brockie
Date:
Hi,

I maintain a Django webapp that uses postgresql and can create inefficient queries if I'm not careful. I'm looking for ways to mimic a congested db server in development to expose these queries.

The configuration of postgresql is complicated - is there a simple method by which I could, for example limit the number of transactions/second to a certain level by adjusting postgresql.conf?

Many thanks!
--
    R.

Richard Brockie

Real-time bicycle race management - www.ontheday.net

Re: Slow down dev database transactions/second for testing?

From
Erik Wienhold
Date:
> On 05/02/2023 23:17 CET Richard Brockie <richard.brockie@gmail.com> wrote:
>
> I maintain a Django webapp that uses postgresql and can create inefficient
> queries if I'm not careful. I'm looking for ways to mimic a congested db
> server in development to expose these queries.

pgbench is what your looking for: https://www.postgresql.org/docs/current/pgbench.html

You can run custom statements with the --file option.  Get the statements that
Django generates and let pgbench run those to analyze the bottlenecks.  Or let
pgbench create load for some time (see option --time) while you debug your
Django app.

> The configuration of postgresql is complicated - is there a simple method by
> which I could, for example limit the number of transactions/second to a
> certain level by adjusting postgresql.conf?

No.  Postgres will execute as fast as possible with the available resources.

--
Erik



Re: Slow down dev database transactions/second for testing?

From
Richard Brockie
Date:

On Sun, Feb 5, 2023 at 3:05 PM Erik Wienhold <ewie@ewie.name> wrote:
> On 05/02/2023 23:17 CET Richard Brockie <richard.brockie@gmail.com> wrote:
>
> I maintain a Django webapp that uses postgresql and can create inefficient
> queries if I'm not careful. I'm looking for ways to mimic a congested db
> server in development to expose these queries.

pgbench is what your looking for: https://www.postgresql.org/docs/current/pgbench.html

You can run custom statements with the --file option.  Get the statements that
Django generates and let pgbench run those to analyze the bottlenecks.  Or let
pgbench create load for some time (see option --time) while you debug your
Django app.

Great - thanks for the suggestion.
 
> The configuration of postgresql is complicated - is there a simple method by
> which I could, for example limit the number of transactions/second to a
> certain level by adjusting postgresql.conf?

No.  Postgres will execute as fast as possible with the available resources.

Understood - thanks again!

--
    R.

Richard Brockie

Real-time bicycle race management - www.ontheday.net