如果我执行命令会发生什么
sudo swapoff -a && swapon -a
RAM 已满25GB/32GB并交换完整20GB/32GB?25+20 = 45 > 32,因此 RAM 无法容纳所有操作数据。另一方面,在交换再次打开之前,它只持续了几秒钟。
它的目标是当我不时重新启动交换时我的笔记本电脑的性能会更好,并且我希望crontab
每天这样做一次。我不想担心如果内存不足会发生什么。我不关心是否临时创建了一个交换文件来包含交换分区的内容。我不希望内核终止任何进程。我能否以某种方式指示内核,如果 RAM 容量不足,它应该临时创建一个交换文件swapoff + swapon
?
答案1
swapoff
如果 RAM 中没有足够的可用页面来存放交换文件的内容,则会出现错误
从man
EXIT STATUS
swapoff has the following exit status values since v2.36:
0
success
2
system has insufficient memory to stop swapping (OOM)
4
swapoff syscall failed for another reason
8
non-swapoff syscall system error (out of memory, ...)
16
usage or syntax error
32
all swapoff failed on --all
64
some swapoff succeeded on --all
The command swapoff --all returns 0 (all succeeded), 32 (all failed), or 64 (some failed, some succeeded).
+ The old versions before v2.36 has no documented exit status, 0 means success in all versions.