После просмотра комментария от Anonymous на вопрос Как очищается каталог / tmp? Я обнаружил, что это было бы хорошей идеей для реализации в моей системе, так как у меня 16 ГБ ОЗУ, и я никогда не использовал все это.
Мои временные файлы никогда не записываются на диск. Они записываются на RAM-диск. Я положил
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
в / etc / fstab.
Мой вопрос:
Могу ли я установить максимальное значение для использования ОЗУ для /tmp
? И в этом случае, что произойдет, если максимальный объем будет превышен, будет ли он записывать на жесткий диск?
Я прочитал решение, которое гласит:
mkdir -p /tmp/ram sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/
Но в моем понимании это не будет постоянным решением. Если мне нужно, чтобы он был постоянным, его нужно добавить в /etc/fstab
файл конфигурации.
Если это правильное решение, как я могу преобразовать эту команду монтирования в строку /etc/fstab
?
источник
Ответы:
Вы абсолютно правы. Соответствующая запись в fstab будет выглядеть так:
Пожалуйста, обратите внимание:
По мере
tmpfs
заполнения он будет вести себя как любой физический жесткий диск, выдавая ошибку «недостаточно места». Хотя перезагрузка (и, следовательно, очистка кеша) исправит это, вы можете столкнуться с проблемами, когда одна операция занимает для начала больше места, чем естьtmpfs
. В этом случае ваш компьютер начнет переключаться с оперативной памяти на диск, что приведет к остановке системы, если, конечно, у вас есть раздел подкачки.Учитывая это, в настоящее время размер 512 МБ может быть намного меньше, поскольку в современных машинах существует гораздо больше оперативной памяти, и она стала намного дешевле. Поскольку у вас уже есть 16 ГБ оперативной памяти, использование значения по умолчанию, равного половине вашей оперативной памяти,
tmpfs
должно быть более чем достаточно для почти всех сценариев. Чтобы использовать значение по умолчанию, просто пропуститеsize=512M
запись в вашем/etc/fstab
файле.Еще одна заметка:
Вы также можете легко монтировать другие системные папки в ramdisk, такие как
/var/cache
/var/games
/var/log/apt
(используйте толькоdefaults,noatime
безmode=
илиnosuid
)Но будьте осторожны: применяются те же правила, что и выше, из-за нехватки места могут возникнуть серьезные проблемы. Например, представьте, что нехватка места для / var / log / apt сделает вас неспособным установить какие-либо программы! Кроме того, загрузка
/var/log
папок в ramdisk удалит все ваши файлы журналов после перезагрузки, поэтому вы не сможете отладить вашу систему, если случится что-то непредвиденное. Так что используйте эти настройки на свой страх и риск!Примечание редактора: я удалил опцию
/run
intmpfs
mount, так как эта папка и ее подпапки уже подключеныtmpfs
по умолчанию.источник
В системах, использующих системы
systemd
, у вас есть возможность использовать системный файл systemd вместо fstab для достижения цели использованияtmpfs
для монтированияtmp
. В моей системе Ubuntu 16.04 я запустил:Файл
/usr/share/systemd/tmp.mount
выглядит так:Используя подход FuzzyQ fstab, systemd динамически переводит ваши записи fstab в модули монтирования. Я не думаю, что любой подход лучше.
Для того, чтобы установить максимальный лимит для ОЗУ в соответствии с запросом, необходимо добавить
size=512M
кOptions
строке, разделенной запятой.источник
systemctl enable tmp.mount
после того, как cp иначе systemctl потерпит неудачу с сообщением "Failed to start tmp.mount: Unit tmp.mount not found.
"systemctl edit tmp.mount
это, было бы нейтральным. Это помещает ваши изменения в файл override.conf, чтобы вы не могли изменить tmp.mount по умолчанию и легко удалить override.conf, чтобы вернуться к конфигурации по умолчанию.ln -s
а неcp
на первом шаге.