I believe this is a frequently asked question Where did the memory go or Which process is consuming memory  I tried to do little bit of research before raising the question. I know there is difference in free vs used in Linux as some of the memory might be in cache which are essentially called as used in Linux term but called as free in user world. When I run top, my utilization is always above 80% of total memory but free shows very less is being used.For example: Top Output: top - 16:28:34 up 12 days, 8 min, 21 users,  load average: 0.02, 0.09, 0.25Tasks: 414 total,   1 running, 380 sleeping,  23 stopped,  10 zombieCpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stMem:  32877500k total, 25747084k used,  7130416k free,   830828k buffersSwap: 20971516k total,    43592k used, 20927924k free, 13334492k cached  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND24959 xyzausr   20   0 8691m 1.9g 118m S  0.0  6.1   8:55.06 java 5765 xyzausr   20   0 8651m 1.8g 118m S  1.0  5.8   6:19.79 java20072 xyzausr   20   0 6923m 1.6g  42m S  0.3  5.1 170:35.26 java19612 xyzausr   20   0 6873m 1.6g  42m S  0.0  5.0  18:49.66 java18070 xyzausr   20   0 6939m 1.2g  42m S  0.3  3.8  15:29.09 java17903 xyzausr   20   0 7040m 979m  61m S  0.3  3.1  16:57.46 java17597 xyzausr   20   0 14.2g 970m  57m S  0.7  3.0  52:54.20 java20025 xyzausr   20   0 3739m 275m  32m S  0.0  0.9   1:17.88 java18292 xyzausr   20   0 3739m 237m  32m S  0.3  0.7   1:15.64 java20630 xyzausr   20   0 3739m 211m  32m S  0.0  0.7   1:17.41 java 3791 root      20   0 1621m  16m 8508 S  0.0  0.1 241:04.31 adclient 5009 xyzausr   20   0 99760 9008 9004 T  0.0  0.0   0:00.01 sqlplusFree Output: free -g             total       used       free     shared    buffers     cachedMem:            31         24          6          0          0         12-/+ buffers/cache:         11         20Swap:           19          0         19from the above statistics, Top shows 13GB cache & total usage of 25GB / 32GB Free shows that we  have 20GB free from buffer/cacheNow, after starting couple of Informatica services, the total usage shown in Top goes to near 98% with cache still being 13GB. Free -g would still show 10GB free but all of my Informatica services (two instances i.e. dev & qa in same box) goes down meaning they either slow down / fail. Is there a way I can figure if there is a leak or if the memory usages tie up so that I ensure that I am expecting too much out of the box ? Also Virtual Memory usage is high on one of the process. Here is top command sorted on VM usage:top - 16:41:33 up 12 days, 21 min, 21 users,  load average: 0.20, 0.20, 0.18Tasks: 425 total,   1 running, 391 sleeping,  23 stopped,  10 zombieCpu(s):  1.1%us,  0.6%sy,  0.0%ni, 98.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stMem:  32877500k total, 26314808k used,  6562692k free,   831940k buffersSwap: 20971516k total,    43592k used, 20927924k free, 13335872k cached  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND17597 xyzausr   20   0 14.2g 965m  57m S  1.0  3.0  53:14.85 java24959 xyzausr   20   0 8694m 1.9g 118m S  2.3  6.1   9:16.99 java 5765 xyzausr   20   0 8653m 1.8g 118m S  0.3  5.8   6:25.20 java17903 xyzausr   20   0 7040m 990m  61m S  0.0  3.1  17:08.12 java18070 xyzausr   20   0 6939m 1.2g  42m S  0.0  3.8  15:31.41 java20072 xyzausr   20   0 6923m 1.6g  42m S  0.7  5.1 170:37.49 java19612 xyzausr   20   0 6873m 1.6g  42m S  0.0  5.1  19:01.00 java  364 xyzausr   20   0 3845m 299m  38m S  0.0  0.9   0:08.74 java  580 xyzausr   20   0 3845m 302m  38m S  0.0  0.9   0:08.77 java18292 xyzausr   20   0 3739m 237m  32m S  0.0  0.7   1:15.95 java20025 xyzausr   20   0 3739m 275m  32m S  0.0  0.9   1:18.32 java20630 xyzausr   20   0 3739m 211m  32m S  0.0  0.7   1:17.72 java 3791 root      20   0 1621m  16m 8508 S  6.3  0.1 241:13.79 adclient 1437 root      20   0  402m 5712 1044 S  0.0  0.0   1:28.67 rsyslogdShould I be looking beyond memory ? i.e io and other stats if any ?Update: I observed that the used memory went down in Top by 4 GB when the cached went down from 13 to 9... however it came back to 13GB in some time.... I reckon kernel decides the cache but is there a possibility that some process is holding up the cache memory and not releasing them ? Update 2: Now utilization shot to 99% and jobs don't runtop - 21:26:42 up 13 days,  5:06, 16 users,  load average: 0.22, 0.16, 0.18Tasks: 369 total,   1 running, 364 sleeping,   4 stopped,   0 zombieCpu(s):  0.3%us,  2.1%sy,  0.0%ni, 97.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stMem:  32877500k total, 31225200k used,  1652300k free,   458096k buffersSwap: 20971516k total,    32420k used, 20939096k free, 20816624k cachedfree -m             total       used       free     shared    buffers     cachedMem:         32106      30497       1609         10        447      20328-/+ buffers/cache:       9721      22385Swap:        20479         31      20448At one point of time, free was 0
Linux: Memory Usage doesn't match Top & Free commands
linux;memory;kvm;top;out of memory