Re: Large pages
Date: Tue, 13 Nov 2012 17:24:32 -0000
Message-ID: <FJidnUkBiMWEHz_NnZ2dnUVZ8oidnZ2d_at_bt.com>
"Mladen Gogala" <gogala.mladen_at_gmail.com> wrote in message
news:k7t91l$l4e$1_at_solani.org...
| On Tue, 13 Nov 2012 10:53:26 +0000, Jonathan Lewis wrote:
|
| > I can't work out from your statement exactly which bit of what I've
said
| > is not correct. Could you please clarify.
|
| Jonathan, the part that is not correct is about every process on Unix
| having its own page table. Page tables for shared memory are also shared.
| There is one per segment, not one per process.
|
|
|
| --
| http://mgogala.byethost5.com
Mladen,
The reason that I referenced Christo's video and notes is that he has
results that agree with my comment and contradict yours. From the text:
<quote:>
As discussed earlier, each process has a page table. This page table is
private for the process and cannot be shared. (Solaris is different in this
respect.)
In Oracle, there is usually a large shared memory segment shared amongst multiple processes. Each process still has a page table that is maintained. For example, for a 1.7 Gb SGA (the typical 32-bit limit), 445,440 x 4 Kb pages are needed. We would need 445,440 leaf PTE entries times 4 bytes each - that's about 2 Mb. Each process would need a PTE table that is 2 Mb in size to fully describe its 2 Gb of mappings. If you have a large number of processes, say 1000, then you will need 2000 Mb of RAM to manage a 1.7 Gb SGA. Quite inefficient.
<end quote>
However,
a) he does mention Solaris and intimate shared memory - and explains that
shared page tables are possible
b) the article is dated Dec 2007 - so things may have changed
Do you have any specific versions of Unix in mind when you state that the page table for a shared memory segment is automatically shared ? Is this, perhaps a specific default for OEL.
-- Regards Jonathan Lewis http://jonathanlewis.wordpress.com/all-postings Author: Oracle Core (Apress 2011) http://www.apress.com/9781430239543Received on Tue Nov 13 2012 - 18:24:32 CET