/tmp vs./dev/shm для хранения файлов temp в Linux?
У меня есть сценарии, в которых сотни быстрых последовательностей, небольшие, временные файлы нужно создавать и очень скоро читать, а затем отсоединяться.
Мое тестирование показывает небольшую разницу в производительности, помещая указанные файлы в /tmp
(на диск) или в /dev/shm
(разделяемая память уровня файловой системы) на Linux даже при умеренной нагрузке. Я отношу это к кэшу файловой системы.
Предоставленный диск в конечном итоге попадет в действие файловой системы, но в нескольких небольших файлах с быстрой записью, почему бы вам (не) рекомендовать /dev/shm
через каталог с резервной копией диска? Вы заметили, что увеличение производительности с помощью общей папки памяти по сравнению с кешированной VFS?
Ответы
Ответ 1
/dev/shm
предназначен для особого назначения, а не для файлов, которые должны выполняться произвольными программами.
В отличие от этого /tmp
точно сделано для этого. В моих системах /tmp
также является tmpfs
, в отличие от /var/tmp
, который разработан для размещения больших файлов, возможно, дольше.
Ответ 2
Это по сути то же самое (shm также поддерживается неявным образом на диске, когда у вас есть swap файл).
Преимущество /tmp заключается в том, что он становится сложнее (учитывая, что ваш жесткий диск, скорее всего, больше вашего swap файла). А также более широко поддерживается.