为什么 /proc/meminfo 在挂起后会报告误导性的 SwapTotal

为什么 /proc/meminfo 在挂起后会报告误导性的 SwapTotal

考虑一下:

[skrat@apex geri]$ cat /proc/meminfo | grep SwapTotal
SwapTotal:      18438120 kB

[skrat@apex geri]$ swapon -s
Filename                                Type            Size    Used    Priority
/dev/mmcblk0p2 (deleted)                partition       3073020 0       10
/dev/mmcblk0p2 (deleted)                partition       3073020 0       10
/dev/mmcblk0p2 (deleted)                partition       3073020 0       10
/dev/mmcblk0p2 (deleted)                partition       3073020 0       10
/dev/mmcblk0p2 (deleted)                partition       3073020 0       10
/dev/mmcblk0p2                          partition       3073020 583196  1000

为什么meminfo报告的总交换大小包括已删除的交换文件/设备?它困扰我的原因是每次系统暂停时,这些设备都会重新安装,每次都会添加新的(deleted)交换设备,加起来会产生误导性的SwapTotal值。除非我愿意使用解析和求和输出,否则很难监控交换使用情况swapon -s。我如何清除这些(deleted)设备或SwapTotal报告良好的价值观

答案1

据 Alasdair G Kergon 所述:如果您删除了活动交换文件,则无法“关闭交换”。2004 年,http://comments.gmane.org/gmane.linux.lvm.general/4949

如果每次挂起笔记本电脑时都会卸载 mmcblk 驱动程序,那么这将删除一个活动的交换设备。现在无法进行交换。swapon一旦重新创建此设备,它不会阻止其工作,但对于 Linux 来说,它是一个不同的设备,而不是同一个设备。

您应该在每次挂起之前告诉笔记本电脑swapoff /dev/mmcblk0p2。可以手动、每次挂起之前,或者在谁知道哪个 acpi 脚本中一次性告知。

相关内容