Re: Performance Question - Mailing list pgsql-admin
From | Thomas F.O'Connell |
---|---|
Subject | Re: Performance Question |
Date | |
Msg-id | 2d1af770a2232de84fad7e43a06ba372@sitening.com Whole thread Raw |
In response to | Re: Performance Question ("Werner vd Merwe" <werner@saicom.co.za>) |
List | pgsql-admin |
Have you considered trying pg_autovacuum, which is in contrib? It actually sets and monitors thresholds to try to determine dynamically when tables need vacuuming. -tfo -- Thomas F. O'Connell Co-Founder, Information Architect Sitening, LLC http://www.sitening.com/ 110 30th Avenue North, Suite 6 Nashville, TN 37203-6320 615-260-0005 On Mar 22, 2005, at 12:31 AM, Werner vd Merwe wrote: > Hi Thomas, > > We perform a full VACUUM and ANALYSE every night, and a ANALYSE on > selected > tables throughout the day. > > Platform is Redhat 9.0 and PG 7.4 > > Snippet of postgresql.conf: > Shared_buffers = 32768 > Effective_cache_size = 131072 > > Hardware: > Dual Xeon 2.4 > 2Gb RAM > Raid 5 SCSI (3 X 73Gb) > > If any more info will be helpful, please let me know! > > Many thanks > > -----Original Message----- > From: Thomas F. O'Connell [mailto:tfo@sitening.com] > Sent: 19 March 2005 08:09 PM > To: Werner vd Merwe > Cc: PgSQL Admin > Subject: Re: [ADMIN] Performance Question > > The long and short of it is that you should never need to restart > either the main server or postgres in order to achieve better > performance. If the issue is that you are not vacuuming frequently > enough, then you might consider pg_autovacuum, which is located in > contrib. > > You could also post more information about your system, including > platform, postgres version, and salient features of your > postgresql.conf file. > > The more information you're able to provide, the more help people on > this list will be able to give you. > > -tfo > > -- > Thomas F. O'Connell > Co-Founder, Information Architect > Sitening, LLC > http://www.sitening.com/ > 110 30th Avenue North, Suite 6 > Nashville, TN 37203-6320 > 615-260-0005 > > On Mar 15, 2005, at 12:33 AM, Werner vd Merwe wrote: > >> Hi Thomas, >> >> The DB has 134 tables, sizes vary, one of the most used and thus >> biggest >> problems currently have around 3,000,000 records in, with 15 fields, >> around >> 15000 records per day added. >> >> >> -----Original Message----- >> From: pgsql-admin-owner@postgresql.org >> [mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Thomas >> F.O'Connell >> Sent: 14 March 2005 06:37 PM >> To: Werner vd Merwe >> Cc: PgSQL Admin >> Subject: Re: [ADMIN] Performance Question >> >> Well, there's always the dbsize module in contrib to check actual size >> on disk. I was thinking more in terms of approximate numbers of tables >> and rows in those tables. >> >> -tfo >> >> -- >> Thomas F. O'Connell >> Co-Founder, Information Architect >> Sitening, LLC >> http://www.sitening.com/ >> 110 30th Avenue North, Suite 6 >> Nashville, TN 37203-6320 >> 615-260-0005 >> >> On Mar 14, 2005, at 10:21 AM, Werner vd Merwe wrote: >> >>> Yeah - only postgres running on the server, VACUUM happens every >>> night, with >>> intermitted ANALYSE on selected tables during the day. >>> >>> Not sure how much data in the DB, not sure how to check that? >>> Operations is all via JDBC, mostly standard queries, with quite a bit >>> if >>> inner joins and inline selects. >>> >>> >>> -----Original Message----- >>> From: pgsql-admin-owner@postgresql.org >>> [mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Thomas >>> F.O'Connell >>> Sent: 14 March 2005 06:10 PM >>> To: Werner vd Merwe >>> Cc: PgSQL Admin >>> Subject: Re: [ADMIN] Performance Question >>> >>> It doesn't make all that much more sense. I'd keep posting to the >>> lists >>> to let other people continue to take a crack at it. Is the system >>> dedicated entirely to postgres? Are you VACUUMing? What kinds of >>> operations are being performed and how much data is in the database? >>> >>> -tfo >>> >>> -- >>> Thomas F. O'Connell >>> Co-Founder, Information Architect >>> Sitening, LLC >>> http://www.sitening.com/ >>> 110 30th Avenue North, Suite 6 >>> Nashville, TN 37203-6320 >>> 615-260-0005 >>> >>> On Mar 14, 2005, at 10:03 AM, Werner vd Merwe wrote: >>> >>>> Hi Thomas, >>>> >>>> Thank you for your response. >>>> >>>> Performance does not pick up after a service restart, needs to be a >>>> system >>>> restart. >>>> >>>> If we do not do that restart, then things are 'broken bad', as the >>>> system >>>> becomes incredibly slow. Not broken after the vacuum, it is a >>>> gradual >>>> decline in performance. >>>> >>>> Hope that makes more sense. >>>> >>>> Many thanks >>>> >>>> >>>> -----Original Message----- >>>> From: Thomas F. O'Connell [mailto:tfo@sitening.com] >>>> Sent: 14 March 2005 05:59 PM >>>> To: Werner vd Merwe >>>> Cc: pgsql-admin@postgresql.org >>>> Subject: Re: [ADMIN] Performance Question >>>> >>>> I think you need to provide more information to get any help with >>>> your >>>> setup. >>>> >>>> For one thing, why are you "restarting"? Are you restarting the >>>> server? >>>> Postgres? In general, there should be no need to restart either. >>>> >>>> Next, what do you mean by "broken bad" after a full vacuum? >>>> >>>> -tfo >>>> >>>> -- >>>> Thomas F. O'Connell >>>> Co-Founder, Information Architect >>>> Sitening, LLC >>>> http://www.sitening.com/ >>>> 110 30th Avenue North, Suite 6 >>>> Nashville, TN 37203-6320 >>>> 615-260-0005 >>>> >>>> On Mar 14, 2005, at 1:08 AM, Werner vd Merwe wrote: >>>> >>>>> Hi guys, >>>>> >>>>> >>>>> >>>>> I have been browsing around and reading up on PostgreSQL >>>>> performance >>>>> to try and tweak our system at the office, as its performance is >>>>> not >>>>> that great. >>>>> >>>>> >>>>> >>>>> Many people say that PG is a great DB, and I know that our problems >>>>> are purely a setup issue. >>>>> >>>>> >>>>> >>>>> After a complete server restart, the system is ok, not fast, but >>>>> workable, the problem are increased by the fact that the PG slows >>>>> down, for example, we run a full vacuum every night, and after a >>>>> restart, it takes about an hour and half, which increases to about >>>>> 3 >>>>> hours in two weeks. At that stage everything is broken bad, and we >>>>> are >>>>> forced to do a restart again. >>>>> >>>>> >>>>> >>>>> I have tried to follow as much of the documents and HOWTO’s on the >>>>> web, but still have some issues. >>>>> >>>>> >>>>> >>>>> Here is some info (did a restart last night, so this is best >>>>> performance atm) >>>>> >>>>> >>>>> >>>>> System: >>>>> >>>>> Dual XEON 2.4GHz >>>>> >>>>> 3Gb RAM >>>>> >>>>> >>>>> >>>>> Dedicated to PG >>>>> >>>>> >>>>> >>>>> Type of apps: >>>>> >>>>> Mostly JDBC queries running via Tomcat. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------- >>>>> - >>>>> - >>>>> - >>>>> - >>>>> -------------------------------------------------------- >>>>> >>>>> ------ Shared Memory Attach/Detach/Change Times -------- >>>>> >>>>> shmid owner attached detached >>>>> changed >>>>> >>>>> >>>>> >>>>> 131072 postgres Mar 14 09:02:43 Mar 14 09:02:23 >>>>> Mar >>>>> 12 15:14:49 >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------ Shared Memory Operation/Change Times -------- >>>>> >>>>> shmid owner last-op last-changed >>>>> >>>>> 786432 postgres Sat Mar 12 15:14:49 2005 Sat Mar 12 15:14:49 >>>>> 2005 >>>>> >>>>> 819201 postgres Sat Mar 12 15:14:49 2005 Sat Mar 12 15:14:49 >>>>> 2005 >>>>> >>>>> 851970 postgres Sat Mar 12 15:14:49 2005 Sat Mar 12 15:14:49 >>>>> 2005 >>>>> >>>>> 884739 postgres Sat Mar 12 15:14:49 2005 Sat Mar 12 15:14:49 >>>>> 2005 >>>>> >>>>> 917508 postgres Sat Mar 12 15:14:49 2005 Sat Mar 12 15:14:49 >>>>> 2005 >>>>> >>>>> 950277 postgres Mon Mar 14 09:02:44 2005 Mon Mar 14 09:02:43 >>>>> 2005 >>>>> >>>>> 983046 postgres Mon Mar 14 09:02:43 2005 Mon Mar 14 09:02:23 >>>>> 2005 >>>>> >>>>> 1015815 postgres Mon Mar 14 09:02:44 2005 Mon Mar 14 09:02:43 >>>>> 2005 >>>>> >>>>> >>>>> >>>>> ------ Message Queues Send/Recv/Change Times -------- >>>>> >>>>> msqid owner send recv >>>>> change >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------ Shared Memory Status -------- >>>>> >>>>> segments allocated 1 >>>>> >>>>> pages allocated 266324 >>>>> >>>>> pages resident 257206 >>>>> >>>>> pages swapped 8619 >>>>> >>>>> Swap performance: 0 attempts 0 successes >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------- >>>>> - >>>>> - >>>>> - >>>>> - >>>>> -------------------------------------------------------- >>>>> >>>>> >>>>> >>>>> 09:03:48 up 2 days, 10:12, 3 users, load average: 0.15, 0.36, >>>>> 0.31 >>>>> >>>>> 64 processes: 63 sleeping, 1 running, 0 zombie, 0 stopped >>>>> >>>>> CPU0 states: 2.2% user 1.4% system 0.0% nice 0.0% iowait >>>>> 95.4% idle >>>>> >>>>> CPU1 states: 1.3% user 0.3% system 0.0% nice 0.0% iowait >>>>> 97.4% idle >>>>> >>>>> CPU2 states: 2.3% user 0.1% system 0.0% nice 0.0% iowait >>>>> 97.1% idle >>>>> >>>>> CPU3 states: 0.0% user 0.3% system 0.0% nice 0.0% iowait >>>>> 99.2% idle >>>>> >>>>> Mem: 2063932k av, 2017520k used, 46412k free, 0k shrd, >>>>> 79388k buff >>>>> >>>>> 1434408k actv, 232k in_d, 46268k in_c >>>>> >>>>> Swap: 2040244k av, 63676k used, 1976568k free >>>>> 1678480k cached >>>>> >>>>> >>>>> >>>>> PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU >>>>> COMMAND >>>>> >>>>> 15985 postgres 15 0 88796 86M 86192 S 3.4 4.2 0:00 0 >>>>> postmaster >>>>> >>>>> 16108 postgres 20 0 21252 20M 19236 S 1.6 1.0 0:00 1 >>>>> postmaster >>>>> >>>>> 16094 postgres 18 0 12188 11M 10292 S 0.4 0.5 0:00 3 >>>>> postmaster >>>>> >>>>> 24846 postgres 15 0 432 228 120 S 0.0 0.0 0:04 2 >>>>> postmaster >>>>> >>>>> 24851 postgres 15 0 1320 1044 24 S 0.0 0.0 0:06 2 >>>>> postmaster >>>>> >>>>> 24852 postgres 15 0 628 400 128 S 0.0 0.0 0:18 2 >>>>> postmaster >>>>> >>>>> 11207 postgres 20 0 11536 10M 9700 S 0.0 0.5 0:00 2 >>>>> postmaster >>>>> >>>>> 15113 postgres 20 0 20908 20M 18796 S 0.0 0.9 0:00 2 >>>>> postmaster >>>>> >>>>> 15114 postgres 20 0 12732 11M 10792 S 0.0 0.5 0:00 2 >>>>> postmaster >>>>> >>>>> 15606 postgres 20 0 12672 11M 10764 S 0.0 0.5 0:00 3 >>>>> postmaster >>>>> >>>>> 15917 postgres 15 0 17172 16M 15220 S 0.0 0.8 0:00 1 >>>>> postmaster >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------- >>>>> - >>>>> - >>>>> - >>>>> - >>>>> -------------------------------------------------------- >>>>> >>>>> >>>>> >>>>> Postgresql.conf extract >>>>> >>>>> >>>>> >>>>> max_connections = 120 >>>>> >>>>> shared_buffers = 131072 >>>>> >>>>> sort_mem = 16384 >>>>> >>>>> vacuum_mem = 8192 >>>>> >>>>> effective_cache_size = 65536 >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------- >>>>> - >>>>> - >>>>> - >>>>> - >>>>> -------------------------------------------------------- >>>>> >>>>> >>>>> >>>>> Any ideas will be greatly appreciated. >>>>> >>>>> >>>>> >>>>> Kind regards >>>>> >>>>> Werner vd Merwe
pgsql-admin by date: