[PATCH] Use MAP_HUGETLB where supported (v3)

From: Abhijit Menon-Sen <ams(at)2ndquadrant(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Cc: andres(at)2ndquadrant(dot)com, hlinnakangas(at)vmware(dot)com
Subject: [PATCH] Use MAP_HUGETLB where supported (v3)
Date: 2013-10-24 06:03:13
Message-ID: 20131024060313.GA21888@toroid.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers


This is a slightly reworked version of the patch submitted by Richard
Poole last month, which was based on Christian Kruse's earlier patch.

Apart from doing various minor cleanups and documentation fixes, I also
tested this patch against HEAD on a machine with 256GB of RAM. Here's an
overview of the results.

I set nr_hugepages to 32768 (== 64GB), which (took a very long time and)
allowed me to set shared_buffers to 60GB. I then ran pgbench -s 1000 -i,
and did some runs of "pgbench -c 100 -j 10 -t 1000" with huge_tlb_pages
set to off and on respectively.

With huge_tlb_pages=off, this is the best result I got:

tps = 8680.771068 (including connections establishing)
tps = 8721.504838 (excluding connections establishing)

With huge_tlb_pages=on, this is the best result I got:

tps = 9932.245203 (including connections establishing)
tps = 9983.190304 (excluding connections establishing)

(Even the worst result I got in the latter case was a smidgen faster
than the best with huge_tlb_pages=off: 8796.344078 vs. 8721.504838.)

From /proc/$pid/status, VmPTE was 2880kb with huge_tlb_pages=off, and
56kb with it turned on.

One open question is what to do about rounding up the size. It should
not be necessary, but for the fairly recent bug described at the link
in the comment (https://bugzilla.kernel.org/show_bug.cgi?id=56881). I
tried it without the rounding-up, and it fails on Ubuntu's 3.5.0-28
kernel (mmap returns EINVAL).

Any thoughts?

-- Abhijit

Attachment Content-Type Size
hugepages-v3.patch text/x-diff 13.4 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Abhijit Menon-Sen 2013-10-24 06:06:51 Re: [PATCH] Use MAP_HUGETLB where supported (v3)
Previous Message Amit Kapila 2013-10-24 04:58:43 Re: CLUSTER FREEZE