https://www.redhat.com/archives/redhat-list/2009-August/msg00120.html 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 ---------------------- ipcs still shows shared memory segments that in total are bigger than the used memory taken from the free command. [root@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@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.