| From: | "Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com> | 
|---|---|
| To: | 'Amit Kapila' <amit(dot)kapila16(at)gmail(dot)com> | 
| Cc: | Magnus Hagander <magnus(at)hagander(dot)net>, Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Supporting huge pages on Windows | 
| Date: | 2017-01-30 01:46:04 | 
| Message-ID: | 0A3221C70F24FB45833433255569204D1F68BED6@G01JPEXMBYT05 | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
From: Amit Kapila [mailto:amit(dot)kapila16(at)gmail(dot)com]
> Hmm.  It doesn't work even on a command prompt with administrative
> privileges. It gives below error:
> 
> waiting for server to start....2017-01-17 11:20:13.780 IST [4788] FATAL:
> could not create shared memory segment: error code 1450
> 2017-01-17 11:20:13.780 IST [4788] DETAIL:  Failed system call was
> CreateFileMap ping(size=148897792,
> name=Global/PostgreSQL:E:/WorkSpace/PostgreSQL/master/Data)
> .
> 2017-01-17 11:20:13.780 IST [4788] LOG:  database system is shut down
> stopped waiting
> pg_ctl: could not start server
> Examine the log output.
> 
> 
> Now, error code 1450 can occur due to insufficient system resources, so
> I have tried by increasing the size of shared memory (higher value of
> shared_buffers) without your patch and it works.  This indicates some
> problem with the patch.
Hmm, the large-page requires contiguous memory for each page, so this error could occur on a long-running system where the memory is heavily fragmented. For example, please see the following page and check the memory with RAMMap program referred there.
http://blog.dbi-services.com/large-pages-and-memory_target-on-windows/
BTW, is your OS or PostgreSQL 32-bit?
> >  It seems that Windows removes many privileges, including "Lock Pages
> in Memory", when starting the normal command prompt.  As its evidence, you
> can use the attached priv.c to see what privileges are assigned and and
> enabled/disabled.  Build it like "cl priv.c" and just run priv.exe on each
> command prompt.  Those runs show different privileges.
> >
> 
> This is bad.
> 
> > Should I need to do something, e.g. explain in the document that the user
> should use the command prompt with administrative privileges when he uses
> huge_pages?
> >
> 
> I think it is better to document in some way if we decide to go-ahead with
> the patch.
Sure, I added these sentences.
+        To start the database server on the command prompt as a standalone process,
+        not as a Windows service, run the command prompt as an administrator or
+        disable the User Access Control (UAC). When the UAC is enabled, the normal
+        command prompt revokes the user right Lock Pages in Memory.
Regards
Takayuki Tsunakawa
| Attachment | Content-Type | Size | 
|---|---|---|
| win_large_pages_v7.patch | application/octet-stream | 7.3 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Haribabu Kommi | 2017-01-30 02:20:30 | Re: pg_hba_file_settings view patch | 
| Previous Message | vinayak | 2017-01-30 01:20:27 | Re: Transactions involving multiple postgres foreign servers |