This has been answered in serverfault. Here is the relevant excerpt:
total
= used
+ free
shared
/ buffers
/ cached
: This shows memory usage for specific purposes, these values are included in the value for used
.
The second line gives first line values adjusted. It gives the original value for used
minus the sum buffers+cached
and the original value for free
plus the sum buffers+cached
, hence its title. These new values are often more meaningful than those of first line.
[End of excerpt]
Focusing on your situation,
- 14813 (used memory) - 262 (buffered) - 883 (cached) = 13668 (used by applications).
In the event an application needs more memory, it can be taken either from free memory or from cached/buffered, so:
- 262 (buffered) + 883 (cached) + 68 (not used at all) = 1213 (available to applications).
The system does not really need 262+883=1145 (not 13GB) for cache and buffers, but since it's there, it takes it (but gives it back if applications need more). Take a look at the Linux ate my RAM! page.
You can also use top
(I personally prefer htop
) to see the memory status and which applications are taking most RAM.
As an example, here is a screenshot of htop running in my RaspberryPi and the free -h
execution:

raspberry ~ # free -h
total used free shared buffers cached
Mem: 183M 178M 5,3M 0B 63M 42M
-/+ buffers/cache: 72M 111M
Swap: 0B 0B 0B