Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Here is the summary from 'top' command

top - 20:14:50 up 18 days, 23 min, 1 user, load average: 0.22, 0.20, 0.18 Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie Cpu(s): 1.1%us, 0.1%sy, 0.0%ni, 94.2%id, 3.5%wa, 0.0%hi, 0.0%si, 1.2%st Mem: 2092032k total, 471684k used, 1620348k free, 924k buffers Swap: 4194296k total, 153940k used, 4040356k free, 42564k cached

As you can see, out of 2GB memory just around 461MB is used. At the same time it shows 150MB of swap is used.

How is this possible? Why would my server hit swap if there's physical memory free?

share|improve this question
add comment

2 Answers

up vote 7 down vote accepted

Under normal circumstances, linux will swap things out when they're not being used, even if there is still free space in RAM. Instead, it'll keep cached files. You can adjust this behaviour by changing vm.swappiness with systctl. More details on the exact details of how this works can be found here.

share|improve this answer
add comment

Linux aggressively swaps out address space which is not actively used for some time. It does so to make more RAM available to filesystem caches (well, actually SLAB caches) or applications using shared memories, a ram disk and so on. Usually, this is exactly what you want.

For further reading, I recommend Linux: Tuning Swappiness for a thorough explanation, although you probably won't have to touch the tunables mentioned there, ever.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.