Re: Restoring from PostgreSQL 9.5 dump to 10 is super slow

From: Pavan Teja <pavan(dot)postgresdba(at)gmail(dot)com>
To: Siddharth Karandikar <siddharth(dot)karandikar(at)gmail(dot)com>
Cc: pgsql-admin <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Restoring from PostgreSQL 9.5 dump to 10 is super slow
Date: 2019-05-06 11:28:36
Message-ID: CACh9nsbPXbk061833vrN7viOS57V0SfDiqHOJ=B-uhu8WL_mgw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi Siddharth,

The slowness also depends on the data with its type(data type).

Typically it depends based on the amount of ram distributed between other
processes and that of pg_restore.

Regards,
Pavan

On Mon, 6 May, 2019, 4:54 PM Siddharth Karandikar, <
siddharth(dot)karandikar(at)gmail(dot)com> wrote:

> Hello All,
>
> This is my first and little longer email on this list. I wanted to
> share all the information that I have gathered so far and it got
> longer.
>
> I am trying to restore database dump created on PostgreSQL 9.5.16 to
> PostgreSQL 10.7 and it is taking a lot of time to restore. Restoring
> the same dump to 9.5 doesn't take that much. So I am wondering what
> could be reason behind this slowness.
>
> Some numbers to show how slow it is:
>
> Small tables (<500MB):
> - 9.5 to 9.5 took 1m4.110s
> - 9.5 to 10 took 1m4.575s
> Medium tables (500MB to 5GB):
> - 9.5 to 9.5 took 6m53.132s
> - 9.5 to 10 took 6m0.998s
> Large tables (5GB+):
> - 9.5 to 9.5 took 131m35.106s
> - 9.5 to 10 took 831m25.539s
>
> Underlying hardware and OS used in both cases are exactly the same.
> Thinking that there could be data format difference between Postgres
> 9.5 and 10 and that could be the reason to this slowness, I tried
> dumping from Postgres 10 and restoring it on Postgres 10, but that is
> also super slow.
>
> Here are some numbers of that:
>
> Small tables (<500MB):
> - 10 to 10 took 0m51.248s
> Medium tables (500MB to 5GB):
> - 10 to 10 took 5m40.224s
> Large tables (5GB+):
> - 10 to 10 took 832m36.850s
>
> Restore commands
> The commands I am using to restore:
> pg_restore -v -F d -n public -U <user> -d <database> -h localhost -j
> 4 --disable-triggers -e -L <file with table names>
> /var/lib/pgsql/20190425/pg_dump_data
>
> The hardware I am running on:
> CPU: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz (2 cores)
> Memory: 16GB
> HDD: nvme 300GB
> FS: ext4
>
> Postgres configuration that I have on this setup:
> shared_buffers = 128MB
>
> work_mem = 1MB
> maintenance_work_mem = 16MB
> dynamic_shared_memory_type = posix
>
> huge_pages = try
> vacuum_cost_page_hit = 1
> vacuum_cost_page_miss = 10
> vacuum_cost_page_dirty = 20
> bgwriter_lru_maxpages = 100
> full_page_writes = on
> seq_page_cost = 1.0
> random_page_cost = 4.0
>
> wal_level = minimal
> wal_sync_method = fsync
> wal_log_hints = off
> wal_buffers = -1
> wal_writer_delay = 200ms
> min_wal_size = 1GB
> max_wal_size = 80GB
> max_wal_senders = 0
> wal_keep_segments = 0
> wal_sender_timeout = 60s
> wal_receiver_status_interval = 10s
> wal_receiver_timeout = 60s
>
> autovacuum = on
> log_autovacuum_min_duration = -1
> autovacuum_max_workers = 3
> autovacuum_naptime = 1min
> autovacuum_vacuum_threshold = 50
> autovacuum_analyze_threshold = 50
> autovacuum_vacuum_scale_factor = 0.2
> autovacuum_analyze_scale_factor = 0.1
> autovacuum_freeze_max_age = 200000000
> autovacuum_multixact_freeze_max_age = 400000000
> autovacuum_vacuum_cost_delay = 20ms
> autovacuum_vacuum_cost_limit = -1
>
>
> Some more things observed:
> * Running strace on Postgres process showed continuous stream of
> lseek/read/write calls and it also showed bunch of futex wait and
> resume calls. These futex calls are not easily seen on Postgres 9.5
> * Looking at pg_stat_activity table showed WALWriteLock under
> wait_event column. It used to change but could see this coming up very
> frequently.
>
>
> Thanks,
> Siddharth Karandikar
>
> PS: I had posted this on stackoverflow, but didn't get lot of
> attention there. So posting it here. Don't know if thats considered
> cross-posting. But if thats the case, I would keep that in mind and
> avoid it in future.
>
>
>

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Siddharth Karandikar 2019-05-06 11:32:37 Re: Restoring from PostgreSQL 9.5 dump to 10 is super slow
Previous Message Siddharth Karandikar 2019-05-06 11:24:08 Restoring from PostgreSQL 9.5 dump to 10 is super slow