From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Fast DSM segments |
Date: | 2020-07-27 02:45:47 |
Message-ID: | CA+hUKGJn0afcbvcL528Qn-0nV692=iLaeKBfDPb+ftQb-SsbxQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Jun 20, 2020 at 7:17 AM Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2020-06-19 17:42:41 +1200, Thomas Munro wrote:
> > On Thu, Jun 18, 2020 at 6:05 PM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
> > > Here's a version that adds some documentation.
> >
> > I jumped on a dual socket machine with 36 cores/72 threads and 144GB
> > of RAM (Azure F72s_v2) running Linux, configured with 50GB of huge
> > pages available, and I ran a very simple test: select count(*) from t
> > t1 join t t2 using (i), where the table was created with create table
> > t as select generate_series(1, 400000000)::int i, and then prewarmed
> > into 20GB of shared_buffers.
>
> I assume all the data fits into 20GB?
Yep.
> Which kernel version is this?
Tested on 4.19 (Debian stable/10).
> How much of the benefit comes from huge pages being used, how much from
> avoiding the dsm overhead, and how much from the page table being shared
> for that mapping? Do you have a rough idea?
Without huge pages, the 36 process version of the test mentioned above
shows around a 1.1x speedup, which is in line with the numbers from my
first message (which was from a much smaller computer). The rest of
the speedup (2x) is due to huge pages.
Further speedups are available by increasing the hash chunk size, and
probably doing NUMA-aware allocation, in later work.
Here's a new version, using the name min_dynamic_shared_memory, which
sounds better to me. Any objections? I also fixed the GUC's maximum
setting so that it's sure to fit in size_t.
Attachment | Content-Type | Size |
---|---|---|
v3-0001-Preallocate-some-DSM-space-at-startup.patch | text/x-patch | 18.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Justin Pryzby | 2020-07-27 02:54:02 | Re: HashAgg's batching counter starts at 0, but Hash's starts at 1. |
Previous Message | Amit Langote | 2020-07-27 02:29:54 | Re: [PATCH] Performance Improvement For Copy From Binary Files |