/ tmp vs./dev/shm用于Linux上的临时文件存储?

Jé *_*eue 23 linux shared-memory temporary-files

我有脚本,需要创建数百个快速连续,小的临时文件,很快就会读回来,然后取消链接.

我的测试表明,即使在中等负载下,也可以将所述文件/tmp放入/dev/shmLinux (磁盘)或(文件系统级共享内存)中.我把它归因于文件系统缓存.

当然,磁盘最终会受到文件系统操作的影响,但是对于多个小的写入读取临时文件,为什么(不)建议使用/dev/shm磁盘支持的目录?您是否注意到在缓存的VFS上使用共享内存目录会有很大的性能提升?

glg*_*lgl 13

/dev/shm 用于非常特殊的目的,而不是由任意程序提供的文件.

与此相反,/tmp此做出准确.在我的系统上,/tmp也是一个tmpfs,相比之下,/var/tmp设计用于放置更大的文件,可能会保持更长时间.

  • +1 `/dev/shm` 是一个通用的 `tmpfs` 是 Linux 的一个实现细节,不以任何方式保证(无论如何可用空间通常非常有限)。使用 `/tmp` 和 `/var/tmp` 作为它们的目的。并且根据使用情况和文件系统,如果您创建和取消链接文件,它可能只会在缓存中而永远不会命中磁盘。 (2认同)
  • @glglgl - 在我们正在部署的系统上(在托管服务场景中)/tmp 不是由 `tmpfs` 支持,而是由主 sda1 磁盘支持。否则,我会同意保持标准,但这是我们此时的部署环境。 (2认同)
  • 什么是“特殊用途”? (2认同)