Dear Thomas and All,
Thanks for sharing your input. How we calculate autovacuum_multixact_freeze_max_age paramter limit into system? Regards, Yogesh On Wednesday, December 13, 2017, Thomas Munro <thomas.mu...@enterprisedb.com> wrote: > On Wed, Dec 13, 2017 at 5:05 AM, David G. Johnston > <david.g.johns...@gmail.com> wrote: > > On Tue, Dec 12, 2017 at 2:52 AM, Yogesh Sharma <yogeshra...@gmail.com> > > wrote: > >> > >> Dear All, > >> > >> I am using PostgreSQL 9.3.6 version and PGDATA pg_multixact.members > folder > >> size is increased to around 3GB. How to reduce this folder size and > how to > >> fix this issue? > >> Is it realted to poatgres issue? If yes how to reproduce this issue? > >> > > > > I'm not familiar enough with this aspect of PostgreSQL but unless you > > upgrade and find this is still broken in 9.3.20 the willingness and > ability > > to help is going to be impacted. > > Between .6 and .20 there were indeed many bugfixes relating to multixacts: > > https://www.postgresql.org/docs/9.3/static/release-9-3-7.html > https://www.postgresql.org/docs/9.3/static/release-9-3-9.html > https://www.postgresql.org/docs/9.3/static/release-9-3-10.html > https://www.postgresql.org/docs/9.3/static/release-9-3-14.html > https://www.postgresql.org/docs/9.3/static/release-9-3-18.html > > If your subject line means that you have "only" 11355 files under > pg_multixact/member then I doubt you've hit any of the problems > covered by those bugs, but still, yeah, you should upgrade. > > The number of 256kb files under pg_multixact/offsets should normally > be limited by autovacuum_multixact_freeze_max_age, where each file > holds 65536 multixacts. The number of 256kb files under > pg_multixact/members is more complicated: it depends on the number of > members in each multixact, which could be as low as 2, or much higher, > depending how many shared lockers you tend to have. Each file holds > 52352 members. The manual says we default to a "relatively low 400 > million multixacts", but that's actually enough to eat a lot of disk > space, especially if you have large multixacts. 400 million > multixacts = 6103 files = ~1.5GB of pg_multixact/offsets, and clearly > the member directory will be even bigger. If you want to use less > disk space, you should set autovacuum_multixact_freeze_max_age lower. > You don't want to set it too low though, or your system will spend too > much time doing freeze vacuums trying to garbage collect multixacts. > You can work out the peak size of pg_multixact/offsets for a given > autovacuum_multixact_freeze_max_age setting as I showed, and you can > assume that your current ratio of offsets:members size will be > maintained to estimate the peak member space usage. > > 9.3 is also prone to eating more multixact space than recent major > versions in cases involving subtransactions. > > -- > Thomas Munro > http://www.enterprisedb.com >