Как заставить tmpfs использовать только физическую оперативную память, а не подкачку?

12

Как быть уверенным, что tmpfsфайловая система может работать только с физическими файлами и не использовать раздел подкачки на диске?

Так как у меня есть медленный жесткий диск и быстрый RAM, я хотел бы , по крайней мере, дает более высокий приоритет использования оперативной памяти для swapи tmpfsили отключить использование дискового пространства для tmpfsсвязанных точек монтирования.

user1717079
источник
3
На самом деле, в соответствии с условиями, которые вы дали, единственный ответ не использует своп вообще. И программисты ядра JFYI Linux действительно знают, что оперативная память быстрее. Итак, вы делаете что-то довольно бессмысленное.
Пой
3
У всех медленный жесткий диск и быстрая оперативная память. Используйте tmpfs. Ядро умнее вас, когда дело доходит до принятия решения о том, что следует хранить в ОЗУ, а что нужно перенести обратно на диск, когда ОЗУ заполнено.
Жиль "ТАК - перестань быть злым"

Ответы:

8

используйте ramfs вместо tmpfs. ramfs - это ramdisk (без свопа). tmpfs может находиться в вашем / etc / fstab:

none     /path/to/location     ramfs  defaults,size=512M   0     0

измените sizeпараметр так, как вам нравится, но будьте осторожны, чтобы не превысить фактическое количество оперативной памяти.

ПРИМЕЧАНИЕ: использование ramfs вместо tmpfs - это не то, что я бы рекомендовал. если что-то случится, вы столкнетесь с проблемами стабильности и запишете тонну данных на свой виртуальный диск. Вы не можете освободить оперативную память от ramfs. как только ваш ramdisk (весь ваш ram) заполнится, ваша система закроется. Оперативная память - это энергозависимая память, то есть после потери питания все данные исчезают. так что, если ваш виртуальный диск заполняет ваш RAM, и вы терпите крах, вы никогда не увидите то, что было на вашем диске RAM снова. в отличие от ramfs, tmpfs ограничивает его размер.

h3rrmiller
источник
спасибо, я никогда не слышал об этом ramfs, это то, что было введено недавно? Каковы требования для этого? Версия ядра? РЕДАКТИРОВАТЬ, как поменять на ramfs?
user1717079
tmpfs поддерживается на всех ядрах 2.4+. согласно википедии ramfs предшествует tmpfs ( en.wikipedia.org/wiki/Tmpfs#Linux ).
h3rrmiller
/ dev / shm является примером виртуального диска. однако теперь по умолчанию это tmpfs, поскольку диски работают быстрее. Вы обычно находите / tmp как ramfs в Solaris. Проблема в том, что вы можете постоянно выделять больше оперативной
памяти
1
я бы не рекомендовал использовать ramfs вместо tmpfs. если что-то случится, вы столкнетесь с проблемами стабильности и запишете тонну данных на свой виртуальный диск. как я уже сказал, вы не можете выделить RAM из ramfs. как только ваш ramdisk (весь ваш ram) заполнится, ваша система закроется. Оперативная память - это энергозависимая память, то есть после потери питания все данные исчезают. так что если ваш ram-диск заполняет ваш ram-диск и вы зависаете, вы больше никогда не увидите то, что было на вашем ram-диске
h3rrmiller
2
+1 к h3rrmiller - я видел, как установка ramfs потребляет всю доступную память, пока машина не умрет. tmpfs более уместен. Также нет особого смысла менять оперативную память - зачем вообще менять?
Дэнни Стейпл