Linux中swap分区的作用和设置方法(linux的swap)

Linux的swap分区,又称虚拟内存,是操作系统能够在RAM不足时,用硬盘来缓冲存储的一块内存,用以减少物理内存的使用。如图1所示,swap分区相当于是物理内存和硬盘中间的一块中转站,由于硬盘读取/写入数据的速度要慢于内存,当系统内存由于程序超负荷运行而无法分配所需的内存时,系统就会将内存数据转入swap分区,由于swap分区的容量往往比物理内存大,使得系统能够更多地容纳最近使用的内存数据,从而缓解物理内存的压力。

![图1:swap分区](03230333_urnrrlniabb.png?format=jpg&name=swap.png)

在设置swap分区之前,我们需要查看Linux系统当前已经拥有的swap分区,如果系统尚未使用swap分区,那么可以自行设置;如果已经存在swap分区,可以省略此过程。使用命令:`sudo swapon -s`查看Linux系统当前已经拥有的swap分区,如果没有,则会显示“Filename Type Size Used Priority”这样的信息,表示尚未拥有swap分区;如果有,则会显示当前已有swap分区的信息,如下图2所示:

![图2:查看swap分区](03230334_jnydj4olyon.png?format=jpg&name=swapons.png)

设置swap分区的方法:

1. 使用前,先检查程序的使用情况,通过`sudo free -m`查看系统的内存使用情况,可以判断swap分区是否可以启用。

2. 选择挂载点,在系统中新建一个swap文件(比如/swapfile),可以使用`sudo dd if=/dev/zero of=/swapfile bs=1M count=具体数量`命令,其中 count 参数可以根据我们想要新建的swap分区大小,比如想要新建一个20G的swap分区,可把count的值设置为20480(20G*1024=20480M),如果乘积不是整数,尽量取大一点的数字,以提高执行效率。

3. 使用`sudo mkswap /swapfile`对指定文件进行格式转换,以便操作系统在该文件上创建swap文件系统。

4. 使用`sudo chmod a+w /swapfile`恢复swap文件的读写权限。

5. 使用`sudo swapon /swapfile`来激活一个swap文件,`sudo swapon -s`命令可以检查swap文件是否激活成功。

6. 将swap文件写入/etc/fstab文件,以便系统启动的时候自动加载。在/etc/fstab文件的最后加入“/swapfile none swap defaults 0 0”,即可完成swap文件的设置。

有了swap分区后,系统内存超过物理内存容量时,可以将数据转入swap分区,以应对系统内存不足的情况,大大提高系统的使用效率,避免在高峰使用时意外崩溃的风险,不过swap分区会有访问延迟,应尽可能避免频繁使用swap分区,以节约磁盘IO。


数据运维技术 » Linux中swap分区的作用和设置方法(linux的swap)