Re: Server stops responding randomly for 5 minutes

From: Andrus
Subject: Re: Server stops responding randomly for 5 minutes
Date: ,
Msg-id: 4C8B0D412AA244D8B0BA459B8AE4B471@andrusnotebook
(view: Whole thread, Raw)
In response to: Re: Server stops responding randomly for 5 minutes  (Peter Geoghegan)
List: pgsql-general

Tree view

Server stops responding randomly for 5 minutes  ("Andrus", )
 Re: Server stops responding randomly for 5 minutes  (Tony Wang, )
 Re: Server stops responding randomly for 5 minutes  ("Tomáš Vondra", )
  Re: Server stops responding randomly for 5 minutes  ("Andrus", )
   Re: Server stops responding randomly for 5 minutes  ("Tomas Vondra", )
   Re: Server stops responding randomly for 5 minutes  (Chris Travers, )
 Re: Server stops responding randomly for 5 minutes  (Peter Geoghegan, )
  Re: Server stops responding randomly for 5 minutes  ("Andrus", )

Peter,

>> Sometimes per week server stops randomly responding for approx 5 minutes.
>> User should wait for 5 minutes before server responds.
>> Other users can work normally at same time.
>Sounds very much like a locking issue.

Thank you.
This may be the issue.

> Are you doing something like
>storing a frequently updated system-wide setting in a table with a
>single row?
>http://wiki.postgresql.org/wiki/Lock_Monitoring

AFAIK Order entry should not update single row global parameter setting
table. Order id and numbers, order detail row ids and row order numbers  are
read from PostgreSql sequence tables using nextval. Hopefully this cannot
cause the issue.
Specific for this site there every order entry invokes lot of tiny updates
for single row foreign key fields on large rid table which are shown below.
Not sure that they cause delay.

>When the problem happens again, report back what the top query you see
> on that wiki page shows.

Issue is reported by users later, I cannot access to server at the time when
issue occurs. Users can report exact time when issue occured.
How to set additional logging for find reason for this after issue is
reported?

I optimized postgresql.conf to mized server using Tuning Wizard and  added

log_lock_waits = on
log_temp_files = 2000
log_min_duration_statement = 10000
log_line_prefix='%t %u %d '
log_min_error_statement = warning

to end of postgresql.conf

How to tune logging so that reason is logged if this happens again ??

Andrus.


Order entry updates:

update rid SET rid7obj='.', reakuupaev=?dok.kuupaev where (toode like 'KM%'
or toode like 'TT%') and
   dokumnr= <<TRANSFORM(dok.dokumnr)>>;
update rid SET rid7obj='.' where toode like 'YM%' and
dokumnr=<<TRANSFORM(dok.dokumnr)>>;
update rid SET reakuupaev=?dok.kuupaev where toode like 'TT%' and
dokumnr=<<TRANSFORM(dok.dokumnr)>>;

update rid SET rid6obj='XX-XXX' where dokumnr=<<TRANSFORM(dok.dokumnr)>> and
toode like 'TT%' ;
update rid SET rid6obj='XX-XXX' where dokumnr=<<TRANSFORM(dok.dokumnr)>> and
toode like 'K%' ;
update rid SET rid6obj='XX-XXX'   where  dokumnr=<<TRANSFORM(dok.dokumnr)>>
and toode like 'Y%' ;

update rid SET myygikood='E' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MLE%';
update rid SET myygikood='Y' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MLE%' and rid6obj like 'EU%' ;
update rid SET rid3obj='MNOEU' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MLE%';
update rid SET rid3obj='MEURO' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MLE%' and rid6obj like 'EU%' ;

update rid SET myygikood='E' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MMA%';
update rid SET rid3obj='MNOEU' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MMA%';
update rid SET myygikood='Y' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MMA%' and rid6obj like 'EU%';
update rid SET rid3obj='MEURO' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MMA%' and rid6obj like 'EU%';

update rid SET myygikood='Y' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MPU%';
update rid SET rid3obj='MNOEU' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MPU%';
update rid SET rid3obj='MEURO' where  dokumnr=<<TRANSFORM(dok.dokumnr)>> and
rid2obj like 'MPU%' and rid6obj like 'EU%';




pgsql-general by date:

From: Chris Travers
Date:
Subject: Re: Using LDAP roles in PostgreSQL
From: Jeff Davis
Date:
Subject: Re: SerializableSnapshot removed from postgresql 8.4