linux中swap分区的介绍
一、概念:
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的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)。