检查交换配置
要检查交换是打开还是关闭,请从 shell 界面运行“swapon -s”。
如果此命令返回非空输出而不是交换已打开,例如:
# swapon -s Filename Type Size Used Priority /dev/sda1 partition 7999484 1201556 0
如果交换关闭,则输出如下所示:
# swapon -s Filename Type Size Used Priority #
暂时禁用交换
为了测试某个问题是否会受到交换使用的影响,我们可以暂时关闭交换。
此操作立即生效,交换的内容写入 内存。
该操作将保持原位,直到执行 swapon -a 或者重新启动系统。
停用交换空间:
通过 ssh 登录系统并运行以下命令:
# swapoff -a
再次激活交换空间:
通过 ssh 登录系统并运行以下命令:
# swapon -a
除了 内存 之外,还有一个所谓的 Swap,它是一种虚拟内存,如果没有足够的可用 内存,可以其中交换 内存 内容(页面)。
它可以是磁盘分区、逻辑卷,甚至是文件。
此交换位于磁盘上,并且由于磁盘读取和写入比从 内存 读取慢,因此访问那里的内存页面会导致延迟。
Linux 中的缓存用于加快从磁盘读取的速度,已从磁盘中读取一次的内容保存在内存中,以便以后如果再次请求相同的内容,则不必再次从磁盘中读取,但取自记忆。
这比从光盘读取要快得多。
缓存通常使用所有空闲内存(随着从磁盘读取文件而缓慢填满)。
如果程序请求另外的内存并且不再有未使用的(在 atop、top 和 ps 中可用)内存,则可以随时释放用于缓存的 内存。
但是,将缓存文件保留在 内存 中并通过交换(将内存页面从 内存 写入磁盘上较慢的 Swap)一些当前未使用的其他正在运行的进程的内存页面来满足对另外内存的请求可能是有意义的。
当我们经常需要一次又一次地读取相同的文件(例如使用数据库)以保持快速的文件访问性能时,这尤其有意义。
在Linux系统上,所谓的swapiness定义了在没有未使用的内存并且程序请求更多内存的情况下应该做什么,是应该优先换出其他程序当前不需要的内存页面还是释放内存缓存。
Linux永久禁用交换空间
通过 ssh 登录并在 /etc/fstab 中通过在前面设置“#”来注释该行:
UUID=347569f8-88d2-4ad1-8a04-01eacd2cd4ba swap swap defaults 0 0
注意:在情况下,UID 可能会有所不同,重要的是“交换”条目。
要触发更改,请使用以下选项之一:
- 输入swapoff -a
- 重启(通过输入“reboot”)
要仔细检查当前状态,请使用命令 swapon -s:
# swapon -s