Memory used by oracle

Yong Huang yong321 at yahoo.com
Mon Aug 17 21:47:51 UTC 2009


Alba,

I looked at the source code of free.c
(e.g. http://csourcesearch.net/c/fidD29685779A46B5F9D61EA96EFDA458EAEB883C8E.aspx)

The numbers under `free' become clear. The used "-/+ buffers/cache" is NOT buffers plus cache. That's why the author has "-/+" in the row header. This number, 2927 in your case, is the resulf of used memory minus buffers_plus_cache, not buffers_plus_cache itself. (Buffers plus cache are 8936-2927=6009 MB, which is also 6061-52.)

Now we know the RAM memory you use is 2927 MB. How can we compare that little memory with your 6748 MB total Oracle shared memory? I have a strong feeling that you're not using HugePages (grep -i huge /proc/meminfo; is HugePages_Total or similar heading shown 0?), therefore the shared memory segments are not locked into RAM. It's always a good idea to use HugePages for Oracle especially if you use large SGA sizes. Because part of the shared memory segments is not in RAM, some time later when more memory is needed inside Oracle, paging occurs and your number 2927 will increase.

Yong Huang


---------------------- Original message ----------------------


[root at bcdserver ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          8988       8936         52          0        215       5792
-/+ buffers/cache:       2927       6061
Swap:         3999        222       3777
[root at bcdserver ~]# ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x0a008784 0          root      666        4096       2
0x040087ac 32769      root      600        4096       0
0xb98eb8e8 65538      oracle    640        132120576  21
0x2fd85d4c 98307      oracle    660        1612709888 66
0x88c037f0 131076     oracle    660        4297064448 64
0x036ad664 163845     oracle    660        1033895936 38

If I got it right this time... the used memory on the server is 6231Mb
(8936-2927+222) and the shared memory segments are taking up to 6748 Mb...
and that is not including non-shared memory used by the oracle processes.


      




More information about the redhat-list mailing list