For some reason Red Hat can’t leave the memory timing in the kernel be. Every so often one of the kernel releases causes an issue similar to what is being seen here.
The fix I have used every time to fix Red Hat’s “I’m not going to give cache memory back like i should issue”?
run sysctl -p
Do all of this as root. So far this has always forced the mahcine to start digging into file cahce isntead of defaulting to swap. RH 2.4.x kernels do this a ton and tuning swap usage is quite involved. With 2.6.x it can be(and usually is) much easier.