Supporting huge pages on Windows - Mailing list pgsql-hackers

From Tsunakawa, Takayuki
Subject Supporting huge pages on Windows
Date
Msg-id 0A3221C70F24FB45833433255569204D1F5F1751@G01JPEXMBYT05
Whole thread Raw
Responses Re: Supporting huge pages on Windows  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
Hello,

The attached patch implements huge_pages on Windows.  I'll add this to the CommitFest.

The performance improvement was about 2% with the following select-only pgbench.  The scaling factor is 200, where the
databasesize is roughly 3GB.  I ran the benchmark on my Windows 10 PC with 6 CPU cores and 16GB of RAM. 

  pgbench -c18 -j6 -T60 -S bench

Before running pgbench, I used pg_prewarm to cache all pgbench tables and indexes (excluding the history table) in the
4GBshared buffers.  The averages of running pgbench three times are: 

  huge_pages=off: 70412 tps
  huge_pages=on : 72100 tps

The purpose of pg_ctl.c modification is to retain "Lock pages in memory" Windows user right in postgres.  That user
rightis necessary for the large-page support.  The current pg_ctl removes all privileges when spawning postgres, which
isoverkill.  The system administrator should be able to assign appropriate privileges to the PostgreSQL service
account.

Credit: This patch is based on Thomas Munro's one.


Regards
Takayuki Tsunakawa


Attachment

pgsql-hackers by date:

Previous
From: "Tsunakawa, Takayuki"
Date:
Subject: Re: [RFC] Change the default of update_process_title to off
Next
From: Amit Kapila
Date:
Subject: Re: Possibly too stringent Assert() in b-tree code