Do we really need swap on modern systems?
This article describes the Linux out-of-memory (OOM) killer and how to find The kernel might not be able to utilize swap space optimally due to the This setting should be adjusted to meet the needs of your environment. swappiness= tells the kernel to aggressively swap processes out of It is actually not as simple as it sounds in Linux (or any modern. The Linux kernel swappiness setting defines how aggressively the kernel will swap The swappiness value tells to the OS's virtual memory subsystem not swap.
Any process waiting on the page will be woken up at that point 75Return success K.
kernel - Why is swap being used even though I have plenty of free RAM? - Ask Ubuntu
If it is a file, the information is obtained directly from the inode Ensure the area is not already activated. If not, allocate a page from memory and read the first page sized slot from the swap area.
The full page, minus 10 bits for the magic string, is used to describe the swap map limiting swap areas to just under MiB in size. If the bit is set to 1, there is a slot on disk available. If they do not match, print a warning and return an error If no good pages were available, return an error Make sure the first page in the map containing the swap header information is not used. Linux uses all otherwise unoccupied memory except for the last few Mb as "cache".
This includes the page cache, inode caches, etc. This is a good thing - it helps speed things up heaps. Both writing to disk and reading from disk can be sped up immensely by cache.
Ideally, you have enough memory for all your applications, and you still have several hundred Mb left for cache.
Swapspace: a Dynamic Swap Manager for GNU/Linux
In this situation, as long as your applications don't increase their memory use and the system isn't struggling to get enough space for cache, there is no need for any swap. Once applications claim more RAM, it simply goes into some of the space that was used by cache, shrinking the cache.
De-allocating cache is cheap and easy enough that it is simply done in real time - everything that sits in the cache is either just a second copy of something that's already on disk, so can just be deallocated instantly, or it's something that we would have had to flush to disk within the next few seconds anyway.
This is not a situation that is specific to Linux - all modern operating systems work this way. The different operating systems might just report free RAM differently: When you talk about free RAM, it's a lot more meaningful to include cache, because it practically is free - it's available should any application request it. On Linux, the free command reports it both ways - the first line includes cache in the used RAM column, and the second line includes cache and buffers in the free column.
How Linux uses swap even more simplified Once you have used up enough memory that there is not enough left for a smooth-running cache, Linux may decide to re-allocate some unused application memory from RAM to swap. It doesn't do this according to a definite cut-off. It's not like you reach a certain percentage of allocation then Linux starts swapping. It has a rather "fuzzy" algorithm.
kernel - Best way to disable swap in linux - Server Fault
Whenever you ask for a new memory page from the operating system, the memory manager has to make an educated decision: Purge a page from the buffer cache Purge a page from a mapping effectively the same as 1, on most systems Move a page that has not been accessed for a long time -- preferably never -- to swap this could in fact even happen proactively, not necessarily at the very last moment Kill your process, or kill a random process OOM Kernel panic Options 4 and 5 are very undesirable and will only happen if the operating system has absolutely no other choice.
Options 1 and 2 mean that you throw something away that you will possibly be needing soon again. This negatively impacts performance. Option 3 means you move something that you probably don't need any time soon onto slow storage. That's fine because now something that you do need can use the fast RAM.
By removing option 3, you have effectively limited the operating system to doing either 1 or 2.
Reloading a page from disk is the same as reloading it from swap, except having to reload from swap is usually less likely due to making proper paging decisions. In other words, by disabling swap you gain nothing, but you limit the operation system's number of useful options in dealing with a memory request. Which might not be, but very possibly may be a disadvantage and will never be an advantage. If you map a file, you can access the file's contents directly as if the file was somehow, by magic, in your program's address space.