60

Swap makes my system all sluggish and turning it off makes everything smoother. I have 3.5 GB of RAM.

I know how to turn swap off by entering sudo swapoff -a in the terminal, but that's just for the current session, because after a reboot swap turns itself back on. Is there any way to turn swap off permanently?

  • 2
    AFAIK the swap is used for hibernation. Just sayin' – DanMan Mar 28 '14 at 21:50
  • 1
    Yes it is, but it still can be used. I have a little script that mounts the swap partition when the system goes into hibernation and un-mounts it when it comes back. The swap file doesn't need to be active in the meantime. – animaletdesequia Mar 29 '14 at 15:07
  • Simply put swapoff -a in /etc/rc.local and forget about that... ;) – user264467 Apr 2 '14 at 6:00
  • 1
    @user264467: it is quite counterintuitive to leave swap enabled just to disable it on every reboot, it is much cleaner to disable it permamently. – karatedog Dec 12 '16 at 7:42
114

May I suggest a safer approach? You never know when swap can save you from crashing. While swapping does indeed slow down your computer, if you use a program that eats up all your RAM, having the ability to swap can save you from a hard reboot. When the computer starts swapping, you'll notice and be able to kill the offending application.

So, instead of disabling swap altogether, just make sure your OS swaps very rarely. This is controlled by the vm.swappiness setting in /etc/sysctl.conf. Ubuntu's default setting is 60 if I remember correctly which is too much for most situations and will cause you to start swapping even while RAM is still available. If you reduce this value, you will be able to keep the safety line of swap while only using it for emergencies. So, open the file:

sudo nano /etc/sysctl.conf

And add this line to it:

vm.swappiness=10

If that is still too much, change the 10 to 1. Now, after you restart, you will only swap when absolutely necessary and you can simply forget about it.

  • I love changing swappines, and I've not done in years. Thanks for the reminder. sudo upvote turdon! – Darth Egregious Mar 28 '14 at 17:18
  • 14
    Just to add to the 'safer approach' argument: When you have no swap and the system runs out of memory, the Linux OOM (Out Of Memory) killer is invoked. This selects a process based on a 'badness' score and then... kills it (terminates, closes) with no chance for the application to save its changes, clean up, etc. Thus, if you turn off swap and run out of memory, you very well run the risk of losing work if important processes score poorly in the OOM killer's eyes. So, you should only turn swap off if you are confident that you will never run out of memory. – Reid Mar 28 '14 at 21:21
  • 4
    @Reid worth pointing out that, obviously, the same exact thing will happen if you run out of swap space too. – o0'. Mar 28 '14 at 23:41
  • 10
    This does not actually answer the question. Disabling swap altogether can make a lot of sense on a system with 16GB or 32GB of RAM. A few extra GB of swap will not do any good in the case of memory-eating applications, while a large amount of swap (e.g. 20GB) would take up a lot of harddrive/SSD space. Also, hibernating with 32GB of RAM is not fun. – jmiserez Mar 29 '14 at 22:19
  • 4
    For some setup, as soon as you run out of physical RAM and starts swapping, the system starts "sucking mud" and becomes unusable. Yes, in theory you can get in and kill the offender, but when it takes 20+ minutes to change focus in the UI and even longer to get a password prompt via SSH, the OOMing ends up being the best option (followed by a hard reboot, followed by getting in and fixing the problem). – BCS Aug 12 '14 at 17:35
43

Find the line in /etc/fstab referring to swap, and comment it. Mine is like this:

UUID=6880a28d-a9dc-4bfb-ba47-0876b50e96b3 /               ext4    errors=remount-ro 0       1
UUID=7350e6f2-e3a7-4d80-9a95-8741c7db118f /home           ext4    defaults        0       2
UUID=E2E26AD1E26AAA0D /media/windows  ntfs    defaults,umask=007,gid=46 0       0

# Swap a usb extern (3.7 GB):
#/dev/sdb1 none swap sw 0 0

You can edit this file with gedit. Backup it first, just in case:

sudo cp /etc/fstab /etc/fstab_backup
gksu gedit /etc/fstab

Just add # to the beginning of the line where swap is, and reboot the computer.

OR

Try Command-line way of commenting out swap entry in /etc/fstab file,

sudo sed -i.bak '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
  • I get this when I type gksu gedit /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /host/ubuntu/disks/root.disk / ext4 loop,errors=remount-ro 0 1 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0 – Alex Li Mar 28 '14 at 14:27
  • 1
    So, do what he's saying. Comment out the first line that refers to "swap". :P – cHao Mar 29 '14 at 2:42
13

Just delete the entry (or comment it using # in front of the line) from fstab and reboot. Look for the line with the word "swap" in it.

sudo nano /etc/fstab
  • 10
    This one would work too, but I think is better commenting the line rather than removing it completely, just in case you want to revert the changes. – animaletdesequia Mar 28 '14 at 14:11
  • 1
    I have edited my post. – mdalacu Mar 29 '14 at 9:31
5

Wrong.. if systemd finds a SWAP partition on any drive it will anyway automount it. Strange that nobody mentioned systemd. The solution is quite simple anyways; to permanently disable swap you must:

  1. swapoff -a
  2. edit /etc/fstab and comment any swap entries if present.
  3. run: sudo systemctl mask dev-sdXX.swap (where XX is the swap partition. Also useful to do it for all possible partitions so that if there is a swap partition on any other drive it will not be mounted)

Peace out.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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