/ tmp против / dev / shm для временного хранения файлов в Linux? - PullRequest
23 голосов
/ 17 марта 2012

У меня есть сценарии, которые позволяют создавать сотни быстрых последовательных файлов, небольшие временные файлы, которые необходимо создать и очень скоро прочитать, а затем не связать.

Мое тестирование практически не показывает разницы в производительности, помещая указанные файлы в/tmp (на диск) или в /dev/shm (разделяемая память на уровне файловой системы) в Linux даже при умеренной нагрузке.Я приписываю это к кешу файловой системы.

Конечно, диск в конечном итоге попадет под действие файловой системы, но для нескольких небольших временных файлов записи-чтения, почему бы вам (не) порекомендовать /dev/shm через каталог на диске?Заметили ли вы значительное увеличение производительности при использовании каталога с общей памятью по сравнению с кэшированной VFS?

Ответы [ 2 ]

13 голосов
/ 17 марта 2012

/dev/shm предназначен для очень специального назначения, а не для файлов, которые будут помещены произвольными программами.

Напротив, /tmp - это именно для этого . В моих системах /tmp также tmpfs, в отличие от /var/tmp, который предназначен для размещения больших файлов, потенциально оставаясь дольше.

2 голосов
/ 17 марта 2012

По сути, это то же самое (shm также неявно поддерживается диском, когда у вас есть файл подкачки).

/ tmp имеет то преимущество, что он заполняется сильнее (учитывая, что ваш жесткий диск, вероятно, больше вашего файла подкачки). А также более широко поддерживается.

...