20

In Linux you can choose things like ext3 and reiserfs for partitions. For the swap partition, you just choose "swap." What file system is this, actually? Can you just create an ext3 partition and make it a swap partition? How would that be different?

2
  • Swap filesystem on Linux appears to be called Linux Swap filesystem. If I manage to find some real information about it, I'll post an answer. So far, I've read from en.wikipedia.org/wiki/Paging that kernel bypasses filesystem on swap files. Same may be true with swap partitions.
    – AndrejaKo
    Aug 6, 2010 at 10:50
  • 1
    The incredible people at Gentoo forums provided me with this link! Everything seems to be nicely explained. Oh and thanks to John R. Graham.
    – AndrejaKo
    Aug 6, 2010 at 12:33

4 Answers 4

31

Swap is no actual file system. It is just a reserved part of the disk that is raw addressable memory with no special structure.

mkswap creates a header for the swap area with some additional information. From swapheader.h of the util-linux-ng package:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

Header version 1 is the currently used one. Thats about all the magic behind the raw structure of swap.

3
  • Doesn't there have to be some kind of file system in order to read and write anything meaningful to a partition?
    – tony_sid
    Aug 6, 2010 at 13:46
  • 6
    No. You just have to address chunks of memory. That is exactly what pages are. Thats because you do not store the data with a complex structure or additional information like in real filesystems where permissions and dates are stored alongside with the data. Aug 6, 2010 at 13:53
  • 6
    You can still address blocks if you do not have a filesystem. Aug 6, 2010 at 13:53
10

I think that the swap partition doesn't need a filesystem because there are no files and directories in it. Swap partition is the virtual RAM place.

1
  • 2
    it is not the virtual ram place exactly. it is (like ram) memory that can be mapped to the virtual memory of a process. Aug 6, 2010 at 12:19
4

Linux has two forms of swap space: the swap partition and the swap file. The swap partition is an independent section of the hard disk used solely for swapping; no other files can reside there. The swap file is a special file in the filesystem that resides amongst your system and data files.

Swapping is necessary for two important reasons. First, when the system requires more memory than is physically available, the kernel swaps out less used pages and gives memory to the current application (process) that needs the memory immediately. Second, a significant number of the pages used by an application during its startup phase may only be used for initialization and then never used again. The system can swap out those pages and free the memory for other applications or even for the disk cache.

3
  • 2
    The answer is really nice and explains the core of the problem, but it's an answer to question "What is swap on GNU/Linux?" So what is it doing here? Also, link related linux.com/news/software/applications/…
    – AndrejaKo
    Aug 6, 2010 at 10:40
  • I know what swap is.
    – tony_sid
    Aug 6, 2010 at 11:57
  • ...didn't know about the swap-file option
    – MrCalvin
    Apr 30, 2018 at 5:59
-1

There are two ways you can create swap space: filesystem swap and device (or raw) swap. With filesystem swap, you are creating a file on a filesystem and using it as swap space (much like you'd see on windows with pagefile.sys). With device swap, you are swapping to a partition you've created specifically for swap.

Which is better:

This debate used to be a lot more interesting in the "old" days because:

Why device swap is "better": Since you are swapping to a raw partition, it is faster because you don't have to deal with all the extra overhead of a filesystem with inodes and other filesystem overhead

Today however this argument doesn't really hold. With evolution of how fast disk access is these days, device swap does not buy you much more time than filesystem swap.

Why filesystem swap is "better": Much easier to change sizes. When you change partition sizes it is a lot harder than just creating new files.

Today however with a lot of people using LVM instead of raw partitions, it's easy to shrink and grow your swap space

TODAY it is even more moot: Most servers these days for performance reasons it's worth the cost just to plug it full of memory. (This debate used to be much more popular when RAM was harder to come by and it was common to only put 4GB to 8GB of RAM in a server)

WHY I USE FILESYSTEM SWAP (and swap in general)

These days I instruct our guys to install with 4gig swap onl and we use the same config/image for all our linux installs. Oracle installation requires higher swap usage so for systems that will have Oracle I will then create the rest with filesystem swap. It is possible your application may have a swap requirement in which case you can then add it later with filesystem swap.

Does this help?

I have detailed instructions how to do this in linux here: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/

2
  • 1
    “Today however this argument doesn't really hold. With evolution of how fast disk access is these days, device swap does not buy you much more time than filesystem swap.” – this is not the reason. The idea here is that swap space may be in immediate demand. Going through a file system involves directories, blocks, inodes, the buffer cache, etc. which are codepaths that themselves can need more memory, leading to a loop. That’s why swap is best done on a raw block device. It also avoids swapfile fragmentation.
    – mirabilos
    Dec 15, 2014 at 15:28
  • This answer may touch on a few interesting points, but it doesn't answer the question...
    – Samuel Li
    Feb 7, 2020 at 1:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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