SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存.SWAP分区只是临时的解决办法.
linux下得分区推荐一个交换分区,一个根分区,其中交换分区如上所说作为redhat或者其它虚机所划分的内存不够时候来使用!
交换分区(swap)的合理值一般在内存的2 倍左右,可以适当加大。实际上具体还是以实际应用为准,swap为内存的2倍也不过是一种以讹传讹的说法。如果交换分区的使用都超过4GB以上了,可想而知服务器的性能应该差很多了。
Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。
准备一台虚拟机,并添加一块虚拟磁盘.vdb是我添加的虚拟磁盘
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
在vdb下划分一块分区,大小位512M,作为交换分区
[root@server0 ~]# fdisk /dev/vdb
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
└─vdb1 253:17 0 512M 0 part
[root@server0 ~]# mkswap /dev/vdb1 #格式化交换分区
[root@server0 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="8ba9c6d1-afe1-47a7-bcca-557087c0c881" TYPE="swap" #确认格式化结果
[root@server0 ~]# vim /etc/fstab
/dev/vdb1 swap swap defautls 0 0 #在/etc/fstab 配置挂载信息 挂载点比较特殊 为swap
[root@server0 ~]# swapon -a #启用新交换分区
[root@server0 ~]# swapon -s #查看挂载信息
文件名 类型 大小 已用 权限
/dev/vdb1 partition 524284 0 -1
[root@server0 ~]# free #查看内存信息
total used free shared buffers cached
Mem: 836720 746600 90120 17108 356 255424
-/+ buffers/cache: 490820 345900
Swap: 524284 0 524284
swapon [分区名或文件名] #将指定分区或文件作为swap使用,也可以-a开启全部swap
swapoff [分区名或文件名] #同上,有开就有关。
swapon -s #查看目前使用的swap
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
思路:将之前的交换分区关闭,重新调整分区大小,或者新建一个主分区作为交换分区
[root@server0 ~]# fdisk /dev/vdb
[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
├─vdb1 253:17 0 512M 0 part
└─vdb2 253:18 0 1G 0 part
[root@server0 ~]# vim /etc/fstab
/dev/vdb2 swap swap defautls 0 0 #开机自启
[root@server0 ~]# mkswap /dev/vdb2 #格式化
[root@server0 ~]#swapon -a #开启所有
[root@server0 ~]# swapon /dev/vdb2
[root@server0 ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/vdb2 partition 1048572 0 -