欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux中swap分区的介绍

程序员文章站 2022-06-02 23:51:17
...

一、概念:

    SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
    缺点:这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存.SWAP分区只是临时的解决办法。

二、下面通过一个示例来说明swap相关的命令

1、创建swap分区

[[email protected] ~]# fdisk /dev/sdb
Command (m for help): n
Partition number (1-4, default 1): 1
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): +2G
Command (m for help): t
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'

2、同步分区

[[email protected] ~]# partprobe /dev/sdb

3、制作swap分区系统

[[email protected] ~]# mkswap /dev/sdb1

4、修改文件配置,使其开机挂载

[[email protected] ~]# vim /etc/fstab
UUID=4c8c4003-c6ef-402f-b94a-9f7de3655fd5 swap swap defaults 0 0

5、使自动挂载立即生效

[[email protected] ~]# mount -a

6、查看空间使用情况

[[email protected] ~]# free
[[email protected] ~]# swapon -s #查看空间使用情况以及更详细的信息

如果想使自己的swap分区优先使用,可以修改配置文件;
[[email protected] ~]# vim /etc/fstab
UUID=4c8c4003-c6ef-402f-b94a-9f7de3655fd5 swap swap pri=2 0 0

但是这样使用mount -a 不能立即使其生效,所有利用下面命令使其生效,先禁用再启用

[[email protected] ~]# swapoff /dev/sdb1
[[email protected] ~]# swapon -a
[[email protected] ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 1953788 5980 -1
/dev/sdb1 partition 2097148 0 2

注意:以前swap分区如果是一个磁盘,我们可以把它拆掉;如果是一个分区,可以删除此分区,解决磁盘空间不够用的问题。

三、如何用文件作为swap分区

1、模拟一个大文件

[[email protected] ~]# dd if=/dev/zero of=/mnt/swapfile bs=1M count=1024

2、查看文件的id

[[email protected] ~]# blkid /mnt/swapfile

3、制作swap文件

[[email protected] ~]# mkswap /mnt/swapfile

4、编辑配置文件

[[email protected] ~]# vim /etc/fstab
UUID=98e483f9-8a49-449a-b99f-7bf857d7c07a swap swap defaults 0 0

5、启动swap分区

[[email protected] ~]# swapon -a
如果不能使用此swap分区

1、先禁用swap分区

[[email protected] ~]# swapoff /mnt/swapfile

2、然后删除配置文件中的信息
3、删除此文件

[[email protected] ~]# rm -rf /mnt/swapfile
建议:在每个过程中都建议检查是否正确执行。

小结

    swapon 选项
        -a:**所有的交换分区
        -p PRRORITY:指定优先级

注意:

1、可以指定swap分区0到32767的优先级,值越大优先级越高。
2如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一。
3、先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)。