TUNING: memory page sizes

This is post number 3 in a series of unanswered "TUNING" questions. :smiley:

With AIX 5.3 TL4, the page size can vary from the original "4k". They can now be "64k" and a couple other sizes. They also do not have to all be the same. Some can remain "4k" while others are "64k" which is what seems to be going on in my system. Does anyone know of any advantages to moving from 4k sized pages to 64k sized pages? With my server having about 13 gig of memory, I think this can only help, right? It's an oracle database server.

You can see the size of your pages in memory with this command:

vmstat -wp all    (w = wide)

Here is what the output from my machine looks like. The page sizes are the last 2 lines:

$ vmstat -wp all

System configuration: lcpu=8 mem=13312MB ent=3.00

 kthr          memory                         page                       faults                 cpu
------- --------------------- ------------------------------------ ------------------ -----------------------
  r   b        avm        fre    re    pi    po    fr     sr    cy    in     sy    cs us sy id wa    pc    ec
  3   2    2018514       7263     0     3     4  1668   8218     0  2054  26300  7043  7  1 83  9  0.27   9.0

    psz        avm        fre    re    pi    po    fr     sr    cy     siz
     4K    1906306       3967     0     3     4  1668   8218     0 3232134
    64K       7013        206     0     0     0     0      0     0    6805

The problem is that tuning questions are platform specific and we are a little short on AIX experts. But in general, large page sizes can waste a large percentage of a large page for every memory segment and that is the only downside. With 13 GB of physical memory you probably want a large page size and this is especially true with Oracle running. A large page size means that the cpu spends less time figuring out how to convert virtual addresses to physical addresses.

Large pages will help applications like Oracle in saving a lot of cpu time by reading / writing large pages instead of the smaller 4K pages , I think the pricess is called lrud which will save lots of cpu. I remember when we did it in the past, We designed the Oracle SGA to use all large pages and pinned. Please note that large pages does not support paging.

Yes, we did leave the rest of the memory [ Total - SGA ] in 4Ks. As IBM documented it can have serious impact to other applications if the page size is more than 4K.

So we will need sufficient memory. And make sure that all the large pages are allocated for the application which is capable of using it. Dont leave any large pages free. They must be pinned in the memory [ no paging ].

If you are talking about oracle, then I will implement large pages on a server which is dedicated for Oracle DB. Nothing else. If that is a webserver cum apps server and something else , I will not do that. The reason being complexity is designing and then maintaining.

Regards,

Kaps