From: | Don Seiler <don(at)seiler(dot)us> |
---|---|
To: | Joshua Drake <jd(at)commandprompt(dot)com> |
Cc: | pgsql-performance(at)lists(dot)postgresql(dot)org |
Subject: | Re: High COMMIT times |
Date: | 2021-01-06 18:06:27 |
Message-ID: | CAHJZqBBnZ1KOjBtOWA0VPw05EuxrHg5eeBCvO-a8Hm5YPTisyQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Wed, Jan 6, 2021 at 10:51 AM Joshua Drake <jd(at)commandprompt(dot)com> wrote:
> I have the stats_temp_directory in a tmpfs mount. I *do* have pg_wal on
>> the same premium SSD storage volume as the data directory. Normally I would
>> know to separate these but I was told with the cloud storage that it's all
>> virtualized anyway, plus storage IOPS are determined by disk size so having
>> a smaller volume just for pg_wal would hurt me in this case. The kind folks
>> in the PG community Slack suggested just having one large premium cloud
>> storage mount for
>>
> the data directory and leave pg_wal inside because this virtualization
>> removes any guarantee of true separation.
>>
>
> It is true that the IO is virtualized but that does not mean that separate
> volumes won't help. In cloud storage you are granted specific IOPS/MB/s per
> volume. Separating pg_wal to a new volume mount will take pressure off of
> page writes and allow the wal to write within its own prioritization.
>
Looking at the Azure portal metric, we are nowhere close to the advertised
maximum IOPS or MB/s throughput (under half of the maximum IOPS and under a
quarter of the MB/s maximum). So there must be some other bottleneck in
play. The IOPS limit on this VM size is even higher so that shouldn't be it.
If I were to size a separate volume for just WAL, I would think 64GB but
obviously the Azure storage IOPS are much less. On this particular DB host,
we're currently on a 2.0T P40 disk that is supposed to give 7500 IOPS and
250MB/s [1] (but again, Azure's own usage graphs show us nowhere near those
limits). A smaller volume like 64GB would be provisioned at 240 IOPS in
this example. Doesn't seem like a lot. Really until you get a terabyte it
seems like a real drop-off as far as Azure storage goes.
I'd be interested to hear what others might have configured on their
write-heavy cloud databases.
[1] https://azure.microsoft.com/en-us/pricing/details/managed-disks/
Don.
--
Don Seiler
www.seiler.us
From | Date | Subject | |
---|---|---|---|
Next Message | Joshua Drake | 2021-01-06 18:53:27 | Re: High COMMIT times |
Previous Message | Joshua Drake | 2021-01-06 16:51:06 | Re: High COMMIT times |