Apple - iMac with 8GB RAM -- memory always almost full

Because OSX manages memory (as does Windows) it is often difficult to tell if performance issues are caused by memory limits. Technically, you really want the OS to capture all the available memory and allocate as needed, in which case, you would see all of the memory being 'used', even though there may be memory available but not allocated by the OS.

This is somewhat analogous to what is happening in OSX and Win7+. However, Apple has made it confusing in the past with many memory classifications, like Wired, Swap, Real, etc.

Luckily, you are running Mavericks, and a new feature of Mavericks is the Memory Pressure graph, described in the Apple support document here: http://support.apple.com/kb/HT5890

enter image description here

Basically, if the memory graph shows Red, you need more RAM, if its Green, you are good. I suggest reading the article for more details, but the Red, Yellow, Green is a great visual tool to help guide where you might be seeing problems.

Depending on your model, I have personally found Macs suffer more from hard drive access speed than memory limits, so an SSD, if your iMac does not have one, has a huge impact (and unfortunately quite a bit of work to put into your iMac)


As any modern operating system, OS X tries to make use of RAM as much as possible. For example, OS X:

  • keeps data in memory when an application quits to gain time if it’s launched again;
  • caches recently used files from your (slow, slow) hard drive for faster later access.

Obviously, this memory is still available for other uses if need be. But the system rightfully see no need to “free” it right now: it waits for the need to appear.

This means that, after running for a while, your computer will always indicate that your memory is completely used or almost. It doesn’t mean you don’t have enough RAM, just that the system doesn’t let it go to waste.

To know if you’re actually lacking in memory, you should mainly check if you’re swapping often. I would refer to @cmason’s excellent answer.