我的嵌入式系统有 2 GB RAM 和 100 MB 交换分区。在继续监控后,我发现 RAM 的平均内存使用量约为 50%。由于某种原因,系统开始使用 SWAP 内存并使用了几乎 40% (40 MB)。我想防止这样的事情发生,因为我的设备闪存在写入次数方面存在很大问题,并且我需要它使用约 10 年。运行这组命令后,我得到使用 SWAP 的进程列表:
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less
我的系统文件/etc/sysctl.conf
配置了参数 : vm.swappiness=1
,所以根据我阅读的文章,只有在确实需要时才应该使用 SWAP 。 (我用 调查了结果vm.sappiness=0
,但还没有结果。)
我知道有一种方法可以防止特定进程使用交换,但正确的方法是什么?
答案1
答案2
我在两个系统上进行测试,我检测到之前使用了 40% 的 SWAP 选项:
vm.swappiness=0
这个选项确实很有帮助。过去 4 天我没有看到任何交换的使用