I get tired of reading things like this post about memory:

Available. This is the number you are looking for. If this goes to zero your system will be very unhappy. With closer inspection, you should see that this number is equal to cached memory plus free memory (minus a little bit). This is because not all the cached memory can be dumped (or freed up) instantly. It is likely that at least a little bit of it will actually be called into action.

"A little bit" gets used? Look, things go bad well before you hit zero in Available. I don't know if it's coincidence, but if I've got a box that's getting sluggish, I'm always near zero in Free, not Available.

In spite of the fact that I can't find a good source describing what's going on, I really don't think it's coincidence. I understand that Available is supposed to be RAM that's ready for use, but if it's not needed, is supposed to be able to be overwritten quickly.

But it's still "on deck", and it's still a limited resource. Let's say you've got zero Free. That means you've only got Available, stuff that likely will be used but could be overwritten if needed. My understanding is that the OS often tries to guess what you'll need and pre-loads that into Available. Maybe that's right, but it doesn't really matter. Either way, available is stuff we think it's likely we'll need, but could overwrite if needed. And if we have zero Free, we can't add anything else to Available.

Note that the y-axis goes to 50

But if what's "really" needed is something the OS wrote to disk a while back and the OS didn't "guess correctly", what happens? We read from disk, and push that jive into Available. Reading from disk is a slow process. If we had enough Available to hold all the possible guesses for all of our apps (I know, that's nearly "unlimited Free"; humor me, but it's also my point), forced, time-sensitive reads from disk to push into Available wouldn't happen. We'd have no platter lag. But the more apps we have sharing Available, the less of a chance the OS has guessed correctly. Each incorrect guess (I'm guessing) costs us performance.

If we have Free RAM open, well, that tells us the OS doesn't think it has an extra guess worth taking. In other words, in that situation, Available is "exhaustive". Guessing is at its lowest cost when gobs of Free is available. I don't care if there's a 1% you're going to use it, there's Free RAM. Load that possible usage from disk to Free, making it Available, as soon as you get a chance.

So if Free is 0, you're less likely to have what you'll need next in Available, right? And if you don't have what you need in Available, you're going to read from disk, and that's slow. It's like playing Pick 'Em in the lottery. If there are 100 possible numbers and you have 100 tickets, unless you're an idiot, you win. If you only have 10 tickets, well, now each ticket is much more important. And if a number you didn't guess comes up, it's going to take some time to erase your original guess. ;^)

Even if I'm totally off base, you're not going to be able to convince me Free is crucially important. Every time my box goes sluggish [1], I open Task Manager and I'm out of Free. If I have Task Monitor open and things are running well (and n is fairly large here), I never see Free at 0. I do have lots of apps open (or so I've been told), so there are lots more guesses needed. And I do swap apps a lot, which means I run into situations where I'm asking for good guesses in Available more often than a conventional user.

But don't tell me, "Available is the only one that matters," like "logicearth" does here. That's just patently false.

I want my RAM to be Free, man, and you should too.

[1] Sluggishness has only been at work, counterintuitively. I have lots more RAM in my boxes at home, and OSes that seem smarter about its management (OS X 10.9+ and Win 8.1). And sluggishness has been "at work" at two companies in a row now. Look, folk, you pay me too much to have me waiting on my box for a minute at a time when 16 gigs of RAM is $200. I shouldn't have to requisition it. Max out the box, and throw in an SSD. Smartest $400 you'll spend.

Labels: ,