Thread: PG Logging is Slow
Under postgres 7.3 logging is incredibly slow!
I have applied the following settings:
log_duration = true
log_pid = true
log_statement = true
log_timestamp = true
______________________________________________________________________ This email, including attachments, is intended only for the addressee and may be confidential, privileged and subject to copyright. If you have received this email in error, please advise the sender and delete it. If you are not the intended recipient of this email, you must not use, copy or disclose its content to anyone. You must not copy or communicate to others content that is confidential or subject to copyright, unless you have the consent of the content owner. |
Theo Galanakis wrote: > Under postgres 7.3 logging is incredibly slow! > > I have applied the following settings: > > syslog = 2 > syslog_facility = 'LOCAL0' > syslog_ident = 'postgres' > > log_connections = true > log_duration = true > log_pid = true > log_statement = true > log_timestamp = true > > This severely impacted the performance of our production system, a search > page which took 1-3 seconds now takes over 30, is this normal? > > I need to get some performance indicators from our production db, however I > cant turn on logging with such performance degradation. Linux syslog has this bad behavior of fsync'ing all log writes. See the syslog manual page for a way to turn off the fsync. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
...and on Mon, Dec 20, 2004 at 03:17:11PM +1100, Theo Galanakis used the keyboard: > Under postgres 7.3 logging is incredibly slow! > > I have applied the following settings: > > syslog = 2 > syslog_facility = 'LOCAL0' > syslog_ident = 'postgres' > > log_connections = true > log_duration = true > log_pid = true > log_statement = true > log_timestamp = true > > This severely impacted the performance of our production system, a search > page which took 1-3 seconds now takes over 30, is this normal? > > I need to get some performance indicators from our production db, however I > cant turn on logging with such performance degradation. > Hi Theo, One thing you should be sure about is that whichever logfile you have configured for the local0 facility is being written to asynchronously. Synchronous logging is REALLY expensive. If you're using the standard syslogd, you can achieve that by prefixing the filename in syslogd.conf with a dash. For example, local0.* /var/log/postgresql.log would become local0.* -/var/log/postgresql.log One other option would be to turn off syslog logging completely and let postmaster take care of the log on its own, which may or may not be possible for you, depending on the policy in effect (remote logging, etc.). Hope this helped, -- Grega Bremec gregab at p0f dot net
Attachment
On Mon, Dec 20, 2004 at 03:17:11PM +1100, Theo Galanakis wrote: > Under postgres 7.3 logging is incredibly slow! > > I have applied the following settings: > > syslog = 2 > syslog_facility = 'LOCAL0' > syslog_ident = 'postgres' > > log_connections = true > log_duration = true > log_pid = true > log_statement = true > log_timestamp = true > > This severely impacted the performance of our production system, a search > page which took 1-3 seconds now takes over 30, is this normal? > > I need to get some performance indicators from our production db, however I > cant turn on logging with such performance degradation. I've experienced this problem many times due to hanging dns lookups. /etc/resolv.conf may point to a nonexistent nameserver. Comment it out and restart syslogd. Or use a syslog implementation that allows you to disable dns lookups. Or just give the nameserver a kick. -Mike Adler
Thank-you Grega,
I ended up using the pg_ctl -l parameter to write the output to a specified file. Much quicker to do so.
I tried the -/var/log/postgresql.log option however I noticed no performance improvement. May be the fact that we use redhad linux and syslog, I'm no sys-admin, so I'm not sure if there is a difference between syslogd and syslog.
Theo
-----Original Message-----
From: Grega Bremec [mailto:gregab@p0f.net]
Sent: Monday, 20 December 2004 3:49 PM
To: Theo Galanakis
Cc: pgsql-performance@postgresql.org
Subject: Re: [PERFORM] PG Logging is Slow
...and on Mon, Dec 20, 2004 at 03:17:11PM +1100, Theo Galanakis used the keyboard:
> Under postgres 7.3 logging is incredibly slow!
>
> I have applied the following settings:
>
> syslog = 2
> syslog_facility = 'LOCAL0'
> syslog_ident = 'postgres'
>
> log_connections = true
> log_duration = true
> log_pid = true
> log_statement = true
> log_timestamp = true
>
> This severely impacted the performance of our production system, a
> search page which took 1-3 seconds now takes over 30, is this normal?
>
> I need to get some performance indicators from our production db,
> however I cant turn on logging with such performance degradation.
>
Hi Theo,
One thing you should be sure about is that whichever logfile you have configured for the local0 facility is being written to asynchronously. Synchronous logging is REALLY expensive.
If you're using the standard syslogd, you can achieve that by prefixing the filename in syslogd.conf with a dash. For example,
local0.* /var/log/postgresql.log
would become
local0.* -/var/log/postgresql.log
One other option would be to turn off syslog logging completely and let postmaster take care of the log on its own, which may or may not be possible for you, depending on the policy in effect (remote logging, etc.).
Hope this helped,
--
Grega Bremec
gregab at p0f dot net
______________________________________________________________________ This email, including attachments, is intended only for the addressee and may be confidential, privileged and subject to copyright. If you have received this email in error, please advise the sender and delete it. If you are not the intended recipient of this email, you must not use, copy or disclose its content to anyone. You must not copy or communicate to others content that is confidential or subject to copyright, unless you have the consent of the content owner. |
Theo, > I tried the -/var/log/postgresql.log option however I noticed no > performance improvement. May be the fact that we use redhad linux and > syslog, I'm no sys-admin, so I'm not sure if there is a difference between > syslogd and syslog. Did you restart syslogd (that's the server process implementing the syslog (= system log) service) after you changed its configuration? In order to do so, try running /etc/init.d/syslog restart as root from a commandline. HTH Alex
Thankyou Alexander,
That has worked and appears to have fixed the issue with syslog.
Theo
-----Original Message-----
From: Alexander Borkowski [mailto:alexander.borkowski@abri.une.edu.au]
Sent: Tuesday, 21 December 2004 10:09 AM
To: Theo Galanakis
Cc: 'pgsql-performance@postgresql.org'
Subject: Re: [PERFORM] PG Logging is Slow
Theo,
> I tried the -/var/log/postgresql.log option however I noticed no
> performance improvement. May be the fact that we use redhad linux and > syslog, I'm no sys-admin, so I'm not sure if there is a difference
between
> syslogd and syslog.
Did you restart syslogd (that's the server process implementing the
syslog (= system log) service) after you changed its configuration?
In order to do so, try running
/etc/init.d/syslog restart
as root from a commandline.
HTH
Alex
______________________________________________________________________ This email, including attachments, is intended only for the addressee and may be confidential, privileged and subject to copyright. If you have received this email in error, please advise the sender and delete it. If you are not the intended recipient of this email, you must not use, copy or disclose its content to anyone. You must not copy or communicate to others content that is confidential or subject to copyright, unless you have the consent of the content owner. |