I have a Debian etch box. With fairly recent patches.

I know Linux uses an always full memory model. However I have, what I feel is an interesting issue.

Upon reboot my box has tons of memory free. After a short while all the memory is used up by disk cache and buffers. I know this part is perfectly normal.

What is odd is that over time the disk cache and buffer slowly decreases in size and the free memory starts to increase.... Eventually, around 4 weeks, the disk cache and buffers shrink to zero in size and the server crashes. However top displays that the server has nearly 2 gigs, out of 3 total, of "free memory" and the swap file isn't used at all.

Any idea why more and more memory would be reported as "free" to the system... yet still be totally unusable? To the point that the server eventually crashes?

The server isn't anything super fancy. It runs web/cluster services. And turning off these services do not make any change in the memory issue.