太长了;如果 /tmp 作为 tmpfs 挂载,在存在交换的情况下,交换时是否有任何优先级?tmpfs 是否在应用程序之前开始交换?
全文
我有一台 32G RAM (Debian) 和 32G 交换空间的笔记本电脑。我打算用 tmpfs 挂载 /tmp。
但我担心系统需要交换时的行为:首先交换什么?我猜(并且我希望)应用程序的 RAM 使用优先级高于 tmpfs(例如,我猜 tmpfs 将首先交换)。但我找不到任何证实这一点的信息。
更广泛地说,是否存在将 /tmp 安装为 tmpfs 会降低系统速度的情况?
我不知道这里应用了任何优先级。页面将根据其使用级别进行换出 - 最近未使用的页面将首先被换出。如果这恰好是 中使用的页面
tmpfs
或应用程序使用的页面,则没有任何区别。请参阅内核如何在磁盘缓存与交换之间做出决定?了解流程详情。因此,您通常会看到运行不频繁的应用程序首先被换出,然后是
tmpfs
一段时间没有触及的内容。根据我的经验,使用
tmpfs
for/tmp
可以提高系统在/tmp
密集型工作负载下的整体响应能力,并且这种改进大于内存使用增加导致的潜在减速。然而,跟踪/tmp
使用情况很重要——很容易最终得到过时的文件,这些文件占用了内存和/或交换空间,而实际上并不需要。