From: | Tatsuo Ishii <t-ishii(at)sra(dot)co(dot)jp> |
---|---|
To: | sdvmailer(at)yahoo(dot)com |
Cc: | pgman(at)candle(dot)pha(dot)pa(dot)us, pg(at)rbt(dot)ca, scott(dot)marlowe(at)ihs(dot)com, steve(at)blighty(dot)com, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: PostgreSQL pre-fork speedup |
Date: | 2004-05-08 02:30:09 |
Message-ID: | 20040508.113009.78705157.t-ishii@sra.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> Hi Bruce,
>
> Sorry for the confusion because Rod asked a question
> and I answered too quickly. This is what I mean.
>
> 15x Slower:
> -----------
> Client <--TCP--> PgPool <--UNIX--> PostgreSQL
> Client <--TCP--> PgPool <--TCP--> PostgreSQL
>
> 5x Faster:
> ----------
> Client <--UNIX--> PgPool <--UNIX--> PostgreSQL
> Client <--UNIX--> PgPool <--TCP--> PostgreSQL
>
>
> Hope this helps! Pgpool speeds up connection time by
> 5x with UNIX socket due to pre-fork and connection
> pooling. However, pgpool slows down by 15x under TCP
> socket for some unknown reason.
It appeared that the cause of TCP socket slowness was in reading the
startup packet which is performed by read_startup_packet(). I did some
measurement for the function and it showed huge difference between
UNIX and TCP sockets. Times (in micro sec) for 100 call to
read_startup_packet() are:
UNIX socket: 623
TCP socket: 6086
As you can see TCP is nearly 10 times slower than UNIX socket. In the
function there are 2 read()s to process the startup packet. I think I
could enhance pool_read() so that it reduces the call to read() as
little as possible...
--
Tatsuo Ishii
From | Date | Subject | |
---|---|---|---|
Next Message | Fabien COELHO | 2004-05-08 09:46:11 | fix schema ownership on first connection preliminary patch |
Previous Message | Gaetano Mendola | 2004-05-08 00:15:59 | write a new built in type |