On Sat, Sep 10, 2016 at 3:49 AM, Samir Magar <samirmag...@gmail.com> wrote:
> Hello, > > > My Application has normally 25 to 30 connections and it is doing lot of > insert/update/delete operation. > The database size is 100GB. > iowait is at 40% to 45 % and CPU idle time is at 45% to 50% > TOTAL RAM = 8 GB TOTAL CPU = 4 > > postgresql.conf parametre: > > shared_buffers = 2GB > work_mem = 100MB > effective_cache_size = 2GB > maintenance_work_mem = 500MB > autovacuum = off > wal_buffers = 64MB > > > How can i reduce iowait and CPU idle time. It is slowing all the queries. > The queries that used to take 1 sec,it is taking 12-15 seconds. > What changed between the 1 sec regime and the 12-15 second regime? Just growth in the database size? Index-update-intensive databases will often undergo a collapse in performance once the portion of the indexes which are being rapidly dirtied exceeds shared_buffers + (some kernel specific factor related to dirty_background_bytes and kin) If you think this is the problem, you could try violating the conventional wisdom by setting shared_buffers 80% to 90% of available RAM, rather than 20% to 25%. Cheers, Jeff