即使内存已满,我创建的交换文件也从未被使用过。
我做错什么了吗 ?
输出swapon -s
Filename Type Size Used Priority
/file.swap file 15728636 0 -2
输出cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults,discard 0 0
# Entry for /swapfile
/file.swap none swap defaults 0 0
输出cat /proc/sys/vm/swappiness
60
编辑
输出free -h
如您所见,我将交换文件的大小减少了一半,最终在内存满载时开始使用,而不是从使用内存的 40% 开始(根据交换性)。我不再有问题了,现在我只是想了解交换文件的行为。
附加信息:我同时运行了 80 个 Firefox 实例才得到此结果。
答案1
在这种情况下使用交换(好吧,如果算上休眠的话,则是+1):
- 您的系统内存不足,需要更换当前未使用的部件以腾出空间放置当前使用的部件。如果您有足够的内存,足以完全满足您的工作负载,这种情况就不会发生。
- 系统确定某项任务长时间处于空闲状态,因此其使用的内存最好用于缓存。这种情况主要发生在长时间运行的系统上,即偶尔运行的任务。例如,始终运行的邮件客户端每隔几个小时检查一次邮件,但其间不执行任何操作。
- 一些高内存程序仍可能会进行交换(视频和 3D 编辑器、数学工具),但大多数情况下只有在需要时才会出现。
看起来这两种情况都不适合您,所以不必担心。如果这两种情况都不适合您,那么问题就来了,但系统仍然会进行交换。
另外,如果您有大约 8+ GB 的 RAM,则只有在休眠时才需要交换。如果您的计算机有 8+ GB 的 RAM 并且您每天都关闭它,则交换分区将永远不会被使用,不需要交换,这是正常的。