For a desktop installation in a new and shiny laptop (let's say 16gb ram and ssd hd), does it make sense to have a swap partition?
Yes you need swap, if you just use it for suspend and minor swap actions a swap file somewhere on your disk might be fine, And i been using swap file from almost a year never ever had problem with it, just don't like partitioning the disk.
Just copy paste the following line in terminal and it will create 2 GB of swap. First become root:
Then copy and paste pate the following (as always, make sure you understand what you are pasting on your terminal):
mkdir /swap && \ cd /swap && \ fallocate -l 2g 2GB.swap && \ mkswap 2GB.swap && \ swapon 2GB.swap && \ echo "# # # Swap File # # #" >> /etc/fstab && \ echo "/swap/2GB.swap none swap sw 0 0" >> /etc/fstab && \ mount -a
You cannot hibernate to swap file, as mentioned by @Takkat, I have check and i have 1st time in my life try to hibernate but its not working, so if you want to hibernate yo need swap partition, otherwise if swap file is good to go.
If you want to be able to hibernate, then yes, it is necessary to have a swap partition at least as large as your total RAM.
Apart from that, if you have 16GB of RAM then in principle probably not - I've seen people saying that 1GB is plenty to run without swap, though I imagine it would boil down to a matter of opinion for many people. In my case, I'm running a laptop with 8GB RAM and have a swap the same size for hibernation purposes (with the side-effect that it provides a buffer if my work becomes particularly memory-intensive, as it can do sometimes)
Is this a theoretical question or a practical one?
In practice, there's almost no reason to avoid a swap partition because disk space is cheap and plentiful (especially on shiny new laptops).
On paper, it might seem that 16GB of memory will never be used up. Consider these circumstances:
- certain programs (e.g. video editors, LibreOffice) use an exorbitant amount of pages when starting up for initialization, then never used again
- unforeseen circumstances: a program going crazy, a fork bomb
Now consider them happening at the same time. A swap partition will serve as a buffer when unpredictable events line up, buying you some time before the system crashes to save work, etc.
Specifically because have a laptop, there will come a time when hibernation saves your skin. Perhaps you will leave your computer for a coffee break, but something comes up and you, instead, return an hour later. If your battery picks that moment to die, hibernation will protect your unsaved work.
Well, for over a year I have not partitioned my SSD and also have no swap file. I have been using the same SSD (512 GB) in two different notebooks. The older one had 8GB RAM, the newer has 16 GB. I use the RAM for temporary files and Firefox Cache and with the 8 GB I sometimes noticed the system getting slow when syncing huge files with grsync. Now with 16 GB RAM (and maybe also newer Ubuntu version 13.04) I have not encountered any problems whatsoever. Also I believe that partitioning is not good for SSDs and is a way of wasting expensive storage. So I only can speak from my experience with SSD/16GB RAM: with this constellation I would certainly not use SWAP and even with 8GB RAM I was ok. Hibernation has been buggy anyway and Standby is much faster
You can make a swap file instead and hibernate with it too, I have made swap files on my laptop so I can hibernate each of my linux installations. Otherwise hibernate would just overwrite the last hibernation if I was using one swap partition. This is my method. Notice you must hibernate using the kernel method: echo disk > /sys/power/state
sudo -s fallocate -l 4000m /swap_file #4000 mb, may want higher than 4000mb swapoff -a mkswap /swap_file nano /etc/fstab #delete previous swap entry then add /swap_file swap swap defaults 0 0 #then save and exit swap-offset /swap_file #remember the output of this nano /etc/grub.d/40_custom add to linux line: resume=<partition swapfile is on> resume_offset=<swap-offset return data> swapon -a nano /home/name/bin/hibernate_shutdown #!/bin/bash echo shutdown > /sys/power/disk echo disk > /sys/power/state create shortcut. system-settings->keyboard->shortcuts->custom shortcuts add gnomesu /home/name/bin/hibernate_shutdown set to F11 chmod +x /home/name/bin/hibernate_shutdown restart computer
viola if you want to restart after hibernate instead of shutdown
echo reboot > /sys/power/disk echo disk > /sys/power/state