Обсуждение: When files in pg_multixact/{members,offsets} get recycled?
Hello,
Running latest 9.3.9. Database was never pg_upgraded. I list
pg_multixact/offsets and pg_multixact/members and I see many files
with dates more than one year old. Is that ok?
# ls -1 members/[0-9A-F]* | wc -l
894
# ls -la members | head
total 127064
drwx------ 2 pgsql pgsql 896 Mar 31 2014 .
drwx------ 4 pgsql pgsql 4 Dec 11 2013 ..
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0000
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0001
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0002
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0003
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0004
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0005
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0006
# ls -la members | tail
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 0374
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 0375
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 0376
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 0377
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 0378
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 0379
-rw------- 1 pgsql pgsql 262144 Mar 31 2014 037A
-rw------- 1 pgsql pgsql 262144 Mar 31 2014 037B
-rw------- 1 pgsql pgsql 262144 Mar 31 2014 037C
-rw------- 1 pgsql pgsql 253952 Jun 24 01:58 037D
As shown, only file 037D in members was recently changed.
The same in offsets:
# ls -1 offsets/[0-9A-F]* | wc -l
60
# ls -la offsets | head
total 15795
drwx------ 2 pgsql pgsql 62 Mar 30 2014 .
drwx------ 4 pgsql pgsql 4 Dec 11 2013 ..
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0000
-rw------- 1 pgsql pgsql 262144 Dec 11 2013 0001
-rw------- 1 pgsql pgsql 262144 Dec 21 2013 0002
-rw------- 1 pgsql pgsql 262144 Jan 12 2014 0003
-rw------- 1 pgsql pgsql 262144 Jan 29 2014 0004
-rw------- 1 pgsql pgsql 262144 Feb 6 2014 0005
-rw------- 1 pgsql pgsql 262144 Feb 9 2014 0006
# ls -la offsets | tail
-rw------- 1 pgsql pgsql 262144 Mar 24 2014 0032
-rw------- 1 pgsql pgsql 262144 Mar 24 2014 0033
-rw------- 1 pgsql pgsql 262144 Mar 25 2014 0034
-rw------- 1 pgsql pgsql 262144 Mar 26 2014 0035
-rw------- 1 pgsql pgsql 262144 Mar 27 2014 0036
-rw------- 1 pgsql pgsql 262144 Mar 28 2014 0037
-rw------- 1 pgsql pgsql 262144 Mar 28 2014 0038
-rw------- 1 pgsql pgsql 262144 Mar 29 2014 0039
-rw------- 1 pgsql pgsql 262144 Mar 30 2014 003A
-rw------- 1 pgsql pgsql 172032 Jun 24 01:58 003B
As shown, only file 003B in members was recently changed.
# pg_controldata /usr/local/pgsql/logs/data
pg_control version number: 937
Catalog version number: 201306121
Database system identifier: 5896471202307701721
Database cluster state: in production
pg_control last modified: Thu Jun 25 14:42:42 2015
Latest checkpoint location: 26FF/685373F0
Prior checkpoint location: 26FF/680609E0
Latest checkpoint's REDO location: 26FF/680658A0
Latest checkpoint's REDO WAL file: 00000005000026FF00000068
Latest checkpoint's TimeLineID: 5
Latest checkpoint's PrevTimeLineID: 5
Latest checkpoint's full_page_writes: on
Latest checkpoint's NextXID: 1/3898164439
Latest checkpoint's NextOID: 23515628
Latest checkpoint's NextMultiXactId: 3908584
Latest checkpoint's NextMultiOffset: 46799749
Latest checkpoint's oldestXID: 3698648295
Latest checkpoint's oldestXID's DB: 131438
Latest checkpoint's oldestActiveXID: 3898164439
Latest checkpoint's oldestMultiXid: 1
Latest checkpoint's oldestMulti's DB: 131438
Time of latest checkpoint: Thu Jun 25 14:42:39 2015
Fake LSN counter for unlogged rels: 0/1
Minimum recovery ending location: 0/0
Min recovery ending loc's timeline: 0
Backup start location: 0/0
Backup end location: 0/0
End-of-backup record required: no
Current wal_level setting: hot_standby
Current max_connections setting: 500
Current max_prepared_xacts setting: 0
Current max_locks_per_xact setting: 64
Maximum data alignment: 8
Database block size: 8192
Blocks per segment of large relation: 131072
WAL block size: 8192
Bytes per WAL segment: 16777216
Maximum length of identifiers: 64
Maximum columns in an index: 32
Maximum size of a TOAST chunk: 1996
Date/time type storage: 64-bit integers
Float4 argument passing: by value
Float8 argument passing: by value
Data page checksum version: 0
--
Piotr Gasidło
Piotr Gasidło wrote: > Running latest 9.3.9. Database was never pg_upgraded. I list > pg_multixact/offsets and pg_multixact/members and I see many files > with dates more than one year old. Is that ok? Yes, it's okay, if a bit annoying. You can decrease the number of files by reducing the freeze age for multixacts; files get removed as the earliest of pg_database.datminmxid moves forward (actually they are removed by the checkpoint immediately following vacuum, though that's likely to change in the next set of minor releases.) You can wait for autovacuum to do it for you, or you can vacuum databases yourself. (pg_database.datminmxid is the lowest of all pg_class.relminmxid in that particular database.) > -rw------- 1 pgsql pgsql 262144 Dec 11 2013 0000 > -rw------- 1 pgsql pgsql 262144 Dec 11 2013 0001 > -rw------- 1 pgsql pgsql 262144 Dec 21 2013 0002 > -rw------- 1 pgsql pgsql 262144 Jan 12 2014 0003 > -rw------- 1 pgsql pgsql 262144 Jan 29 2014 0004 > -rw------- 1 pgsql pgsql 262144 Feb 6 2014 0005 > -rw------- 1 pgsql pgsql 262144 Feb 9 2014 0006 ... > -rw------- 1 pgsql pgsql 262144 Mar 24 2014 0032 > -rw------- 1 pgsql pgsql 262144 Mar 24 2014 0033 > -rw------- 1 pgsql pgsql 262144 Mar 25 2014 0034 > -rw------- 1 pgsql pgsql 262144 Mar 26 2014 0035 > -rw------- 1 pgsql pgsql 262144 Mar 27 2014 0036 > -rw------- 1 pgsql pgsql 262144 Mar 28 2014 0037 > -rw------- 1 pgsql pgsql 262144 Mar 28 2014 0038 > -rw------- 1 pgsql pgsql 262144 Mar 29 2014 0039 > -rw------- 1 pgsql pgsql 262144 Mar 30 2014 003A > -rw------- 1 pgsql pgsql 172032 Jun 24 01:58 003B > > As shown, only file 003B in members was recently changed. This says that your usage of multixacts is bursty -- you use many of them in some periods, and little or none in others. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services