From Bugzilla Helper: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461) Description of problem: All available system memory fills up when copying large folders or directories (either locally or via nfs). It seems to be a memory leak somewhere in the IO subsystem. This error is reproduceable on EVERY system we have (over 10) that is running the 2.4.9-13athlon kernel. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Install the 2.4.9-13athlon rpm kernel. 2. Reboot. 3. Copy a large file or folder anywhere locally on the system. 4. Memory is full with about 5 megs free. Actual Results: All system memory filled up. This is very visible by running top. Expected Results: Files should have copied and released all memory used during the copy process once it completed. Additional info: System Specs: Motherboard: MSI K7T266 Pro2 Processor: AMD Athlon 1700+ XP (1.47GHz) Memory: 1GB DDR SDRAM (Samsung) Video: MSI GeForce 2MX 400 Network: 3Com 3c509c TX-M Audio: AC97 onboard audio.
This is called "disk cache". If you need the data again it's already in memory and doesn't have to come from disk -> lots faster. If something actually needs the memory it's released immediatly.
Understood. But it causes the system to hang after a period of time without releasing the memory back. The memory NEVER gets released back....even after a period of hours.
It should be. You can easily test his with the following: dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 ; rm /tmp/testfile which basically asks for memory and then gives it back. This should basically free the cache by being nasty to the system...
That does force it to give back most of the memory that it took up, but there is still some left resident. And if it is using disk-cache, is there not some sort of timeout before it releases the memory completely back to the system. Because the memory does get release back only when other processes request it. But it still always stays completely full (barring me forcing the machine into memory submission) until the system slows then locks up. If there isn't some sort of timeout or clearing method (somewhat like a garbage collector)....that seems really inefficient to me.
Later 2.4.x errata are better about giving back memory efficiently when they should.