Первое Существует виртуальная память задачи/процесса (частный случай - ядра) и физическая память (ОЗУ), установленное в компьютер. Для простоты считаем, что каждой задаче отводится 2 в степени 32 байт ~ 4 ГБайт. Что-бы физической памяти хватало всем задачам, ядро выделяет память по-необходимости.
Когда физической памяти становится не хватать, ядро выгружает часть содержимого памяти задач, которые неактивны (ждут нажатия мыши, закачки и т.п.) на жесткий диск в раздел swap.
Второе Кроме того файловая система tmpfs то-же находится в памяти, если к файлу не хватает места в физической памяти выделенной ядром для tmpfs, то такой файл выгружается в swap.
Третье Если Вы хотите использовать засыпание на диск, то вам надо для этого тоже предусмотреть место в swap для этого процесса (память всех задач и ядра сбрасывается в момент засыпания в swap).
Теперь о размере.
По первому пункту требуется swap в размере выделенной памяти всех задач минус 3/4 ('эмпирическая цифра) ОЗУ, т.е. чем больше памяти требуют запущенные вами задачи, тем больше требуется swap.
С ростом быстродействия файловой системы удаётся запустить больше задач, и соответственно потребуется больше swap. Конкретное состояние можно посмотреть в top.
По третьему пункту - для засыпания потребуется swap, равный размеру выделенной памяти всех задач.
По tmpfs - если в /tmp (который по-умолчанию находится в tmpfs) у вас находится $TMPDIR пользователей, то надо, что-бы все пользователи могли работать нормально, т.е. если пользователь закачивает в /tmp файл размером в 8ГБ, то надо, что-бы своп был больше 8 Гб.