运维与监控  - 讨论区

标题:如何给Linux系统添加SWAP设备

2018年04月02日 星期一 12:37

虚拟内存是现代操作系统的一个重要概念。如果以应用程序的视角来看,可用的内存是一片非常广袤的虚拟空间。在Linux系统中,如果有SWAP设备(一般是磁盘设备或者文件),那么应用程序实际使用的内存容量可以超过物理内存的容量。这种情况下,有一部分数据会被换出到SWAP设备中。

有一些小型VPS,默认情况下没有分配SWAP设备,当运行占用较大内存的程序时,就会出现Out of memory的情况,此时内核会选择性的强制Kill一些进程,以释放一些内存。

如果遇到这种情况,我们可以新增一个基于文件的SWAP设备,来临时缓解问题。需要注意,如果程序的内存被换出到SWAP设备,可能会严重影响程序的性能,所以终极的解决方案还是增加足够的实际物理内存。

首先我们可以通过free命令查看当前的内存和SWAP使用情况:

我们使用dd命令来创建一个1GB的文件:

使用chmod命令修改此文件的权限,并使用mkswap命令初始化:

修改/etc/fstab文件,增加SWAP的配置:

使用swapon命令使SWAP设备生效,并通过free命令确认SWAP已经生效:

参考资料:

man mkswap

man swapon

2018年04月26日 星期四 15:14

深度好文

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2019

    京ICP备05028076号