tmpfs не переполняется для обмена

Я настроил tmp в /etc/fstab следующим образом:

 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 2 

Проблема в том, что теперь /tmp ограничивается половиной памяти машины, и когда она достигает этого предела, я получаю ошибку «нет места на устройстве».

Я хотел бы сделать его «неограниченным», т.е. увеличиться до размера диска.

У меня создается впечатление, что у вас есть несколько заблуждений относительно tmpfs . Возможно, вам будет полезно прочитать документацию ядра по этой теме; Я попытаюсь разъяснить вам все здесь.

Заголовок вашего вопроса « tmpfs не переполняется для обмена», похоже, не отражает фактическое содержание вашего вопроса, но в любом случае tmpfs использует swap, хотя, возможно, он не переполняется для обмена. tmpfs в основном представляет собой (виртуальную) файловую систему на основе памяти; его содержимое сохраняется только в памяти, но поскольку они могут быть заменены, ядро ​​может сохранять их в swap вместо физической памяти, если это необходимо. Тем не менее файловые системы tmpfs не могут быть больше общего объема доступной виртуальной памяти, то есть физической ОЗУ и свопа, как указано, например, с помощью free -h .

По умолчанию файловые системы tmpfs имеют максимальный размер, равный половине объема доступной физической памяти. Вы можете увеличить это, используя параметр size , но опять же он не может быть больше, чем доступная физическая память и своп (хотя этот предел не применяется во время монтирования). Как только файловая система достигает максимального размера (или, вернее, содержит файлы, занимающие столько места), он сообщает, что у вас закончилось свободное место, как вы узнали. Сам tmpfs не поддерживает переполнение в любом месте, когда заканчивается пробел.

Если вам требуется временное хранилище для больших файлов, вы должны использовать /var/tmp а не /tmp . Вам действительно не нужна очень большая файловая система tmpfs , это рецепт катастрофы, когда она заполняется (обычные способы восстановления памяти ядра не работают в tmpfs ).

(Если у вас много оперативной памяти, то могут работать большие tmpfs . Я запускаю несколько систем с файловыми системами build tmpfs размером в 75% оперативной памяти из 32GiB, 64GiB или даже больше).