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