Hi,
I am looking into the impact of large page sizes on
the performance of commercial workloads e.g databases,webserver,virtual machines
etc. I was wondering if I could get to know whether Postgres administrators
configure the Postgres DBMS with large page support for shared memory regions,
specifically on the Solaris 9 and 10 OSes. My understanding is that since large
pages (4 MB) are suitable for applications allocating large shared memory
regions (databases for instance), Postgres would most definitely use the large
page support.
So in a nutshell, the questions are
1) Does Postgres use large page support ? On
solaris 10 and the ultrasparc III processor, a large page is 4 MB. It
significantly reduces the page table size of the application and a 1000
entry TLB can cover the entire memory 4G.
2) On Solaris 9 and 10, does Postgres rely on the
MPSS support and relegate the job of figuring out what to allocate as a large
page and what not to, when to allocate a large page and when not to etc ? Or is
it the case that the Postgres developers have written it judiciously and
Postgres itself knows what to and what not to allocate as a large page ? The
reason i ask this question is because, i know for a JVM, solaris 10 allocates
large pages for the heap memory (this is default behavior, no runtime parameters
needed when one runs the JVM. The OS is smart enough to figure this
out)
3) In light of all this, do we know the performance
difference between Postgres configured with no large pages vs Postgres
configured with large pages.
Your replies are highly appreciated.
Hamza
|