tmpfs будет использовать пространство подкачки при необходимости (это может произойти, даже если размер tmpfs составляет половину размера ОЗУ, поскольку другие вещи тоже используют ОЗУ), а «половина ОЗУ» - это просто размер по умолчанию (довольно нормальный по умолчанию) файловой системы. Вы можете установить его на то, что хотите, при монтировании или перемонтировании, используя аргумент 'size':
Параметры монтирования для tmpfs
size=nbytes
Override default maximum size of the filesystem. The size is
given in bytes, and rounded up to entire pages. The default is
half of the memory. The size parameter also accepts a suffix %
to limit this tmpfs instance to that percentage of your physical
RAM: the default, when neither size nor nr_blocks is specified,
is size=50%
Если ваш дистрибутив использует fstab для монтирования tmpfs, вы можете добавить, например, «размер = 40G» там. Вы также можете перемонтировать его в любое время, используя:
mount -o remount,size=40G /dev/shm
Будьте осторожны, хотя. Если файлы в tmpfs занимают слишком много вашей виртуальной памяти (RAM + swap), приложения могут быть убиты (убийцей OOM), и вся система может выйти из строя.
Вернуться к вашим вопросам ...
Я не думаю, что легко определить, что будет заменено, так как AFAIK на этом уровне для Linux все (включая память данных процесса, кэшированные файлы на диске, файлы mmaped на диске, файлы tmpfs) - это то же самое, что и «виртуальный» объем памяти'. Linux может посчитать некоторые страницы более важными (недавно использованными), другие готовы к замене. Так что это может быть частью файла tmpfs, а часть другого процесса выгружена.