On Wed, Nov 7, 2012 at 09:17:29PM -0500, Bruce Momjian wrote: > Things look fine through 2k, but at 4k the duration of pg_dump, restore, > and pg_upgrade (which is mostly a combination of these two) is 4x, > rather than the 2x as predicted by the growth in the number of tables. > To see how bad it is, 16k tables is 1.3 hours, and 32k tables would be > 5.6 hours by my estimates. > > You can see the majority of pg_upgrade duration is made up of the > pg_dump and the schema restore, so I can't really speed up pg_upgrade > without speeding those up, and the 4x increase is in _both_ of those > operations, not just one. > > Also, for 16k, I had to increase max_locks_per_transaction or the dump > would fail, which kind of surprised me. > > I tested 9.2 and git head, but they produced identical numbers. I did > use synchronous_commit=off. > > Any ideas? I am attaching my test script.
Thinking this might be related to some server setting, I increased shared buffers, work_mem, and maintenance_work_mem, but this produced almost no improvement: tables pg_dump restore pg_upgrade 1 0.30 0.24 11.73(-) 1000 6.46 6.55 28.79(2.45) 2000 29.82 20.96 69.75(2.42) 4000 95.70 115.88 289.82(4.16) 8000 405.38 505.93 1168.60(4.03) shared_buffers=1GB tables pg_dump restore pg_upgrade 1 0.26 0.23 1000 6.22 7.00 2000 23.92 22.51 4000 88.44 111.99 8000 376.20 531.07 shared_buffers=1GB work_mem/maintenance_work_mem = 500MB 1 0.27 0.23 1000 6.39 8.27 2000 26.34 20.53 4000 89.47 104.59 8000 397.13 486.99 Any ideas what else I should test? It this O(2n) or O(n^2) behavior? -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers