Skip to contentSkip to conversation

Question regarding inactive memory

DISCUSSION David van Hoose 2 participants 3 messages Apr 29, 2003

lore
Share & tools
lore
#0 lore raw

This may be a bit of a newbie'ish question, and maybe a bit off-topic, but is there any way for me to remove inactive memory, either explicitly or implicitly? I have 512MB of PC2700 SDRAM, but my system is constantly eating into the swap I have on my system since I have usually about 140-300MB of inactive (and dirty) RAM and usually about only 250MB in active memory. Is there a way for me to correct this bad memory usage without having to reboot? If patching the kernel would be a possible route to venture to, I'm game.

Any suggestions or comments are welcome.

Thank you all!
David

#1 lore raw
Quoted 9 lines · David van Hoose

This may be a bit of a newbie'ish question, and maybe a bit off-topic, but is there any way for me to remove inactive memory, either explicitly or implicitly? I have 512MB of PC2700 SDRAM, but my system is constantly eating into the swap I have on my system since I have usually about 140-300MB of inactive (and dirty) RAM and usually about only 250MB in active memory. Is there a way for me to correct this bad memory usage without having to reboot? If patching the kernel would be a possible route to venture to, I'm game.

Quoted 5 lines

Any suggestions or comments are welcome.

Thank you all!
David

Assuming you are not using a development kernel, the memory manager will try to use most all available RAM. This is normal. During most usage, many of the daemons get swapped out, and unless they are awakened, they don't get swapped back in. This is normal because one does not want to waste the CPU cycles necessary to swap back in RAM data that will not be used.

The purpose of using most all available RAM is to save CPU cycles and make the machine responsive. If you have a program that needs RAM, it is grabbed from those buffers you see if you do cat /proc/meminfo. The idea is to nat waste any RAM.

If you want to just write the stuff on your swap device(s) back to RAM, to see that it "really works", just execute, swapoff -a as root. You can then execute swapon -a and you are back to "normal".

The 'dirty' buffers are kept around, even after being written to disk, so they don't have to be re-read the next time you execute ls or run a program.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips). Why is the government concerned about the lunatic fringe? Think about it.

#2 lore raw
Quoted 28 lines · Richard B. Johnson
Quoted 10 lines · David van Hoose

This may be a bit of a newbie'ish question, and maybe a bit off-topic, but is there any way for me to remove inactive memory, either explicitly or implicitly? I have 512MB of PC2700 SDRAM, but my system is constantly eating into the swap I have on my system since I have usually about 140-300MB of inactive (and dirty) RAM and usually about only 250MB in active memory. Is there a way for me to correct this bad memory usage without having to reboot? If patching the kernel would be a possible route to venture to, I'm game.

Any suggestions or comments are welcome.

Assuming you are not using a development kernel, the memory manager will try to use most all available RAM. This is normal. During most usage, many of the daemons get swapped out, and unless they are awakened, they don't get swapped back in. This is normal because one does not want to waste the CPU cycles necessary to swap back in RAM data that will not be used.

The purpose of using most all available RAM is to save CPU cycles and make the machine responsive. If you have a program that needs RAM, it is grabbed from those buffers you see if you do cat /proc/meminfo. The idea is to nat waste any RAM.

Quoted 8 lines

If you want to just write the stuff on your swap device(s) back to RAM, to see that it "really works", just execute, swapoff -a as root. You can then execute swapon -a and you are back to "normal".

The 'dirty' buffers are kept around, even after being written to disk, so they don't have to be re-read the next time you execute ls or run a program.

I am currently using kernel 2.4.21-rc1.
Problem I am having is that my swap is used only after all of my physical ram is used. My system then starts to run a lot slower. Especially processes that allocate lots of memory. If the kernel knows that memory is inactive, why doesn't it swap it to disk so that memory doesn't have to be shuffled around when a new process needs memory? It would also make me happy to be able to swap dirty memory to disk.

Thanks,
David