используйте `/ run / shm` (ранее` / dev / shm`) как временную директорию

Является ли хорошей практикой создание каталога в /run/shm (ранее /dev/shm ) и использовать его как временную директорию для приложения?

Справочная информация. Я пишу тесты черного ящика для программы, которая делает много вещей с файлами и каталогами. Для каждого теста я создаю много файлов и каталогов, а затем запускаю программу, а затем создаю ожидаемый набор файлов и каталогов, а затем запускаю diff для сравнения. Сейчас у меня около 40 тестов, и они уже набирают 2 секунды для запуска. Надеясь ускорить работу, я хочу запустить тесты в каталоге на каком-то ramdisk.

Изучая диск ram, я наткнулся на вопрос с ответом, в котором говорится, что создать каталог в /dev/shm и использовать его как временную директорию. Еще несколько исследований, однако, я наткнулся на страницу вики от debian, заявив, что это ошибка в использовании /dev/shm напрямую. Я должен использовать функции shm_* . К сожалению, функции shm_* похоже, недоступны для использования в сценарии оболочки.

Теперь я смущен. Это нормально или не использовать /run/shm (ранее /dev/shm ), как временный каталог?

One Solution collect form web for “используйте `/ run / shm` (ранее` / dev / shm`) как временную директорию”

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

Кроме того, не путайте статью с Debian. shm_* используются для создания разделяемых сегментов памяти для Inter-Process Communication. С помощью этих функций вы можете обмениваться фрагментом памяти между двумя или несколькими процессами, чтобы они обменивались данными или сотрудничали с использованием одних и тех же данных. Процессы имеют сегмент памяти, прикрепленный в своем собственном адресном пространстве, и могут читать и писать там, как обычно. Ядро имеет дело со сложностью. Эти функции недоступны в качестве функций оболочки (и не будут очень полезны в контексте оболочки). Для получения дополнительной информации, посмотрите man 7 shm_overview . Дело в том, что никакая программа не должна управлять непосредственно псевдо-файлами, представляющими разделяемые сегменты, а вместо этого использовать соответствующие функции для создания, присоединения и удаления сегментов разделяемой памяти.

  • Несколько разделов tmpfs
  • Отвязывать файлы в / dev / shm, не освобождая память?
  • Производительность tmpfs
  • Что происходит с Google Chrome и удаленными файлами
  • Ограничьте размер tmpfs с помощью overlayroot
  • mount tmpfs сохраняет текущие разрешения
  • Автоматически изменяется ли tmpfs при изменении объема ОЗУ и конкурирует ли он с несколькими tmpfs?
  • -bash: невозможно создать временный файл для здесь-документа: на устройстве нет места
  • являются ли исполняемые файлы daemon tmpfs скопированы в незашифрованную память при выполнении? (запретите, если так?)
  • Как я могу использовать tmpfs для ускорения запуска браузера Chrome?
  • / tmp в качестве tmpfs: Совместимость и безопасность
  • Есть ли более простой способ найти свободное место на диске в скрипте, чем «df»?
  • Linux и Unix - лучшая ОС в мире.