Swap是Linux下的交换分区,类似Windows的虚拟内存,当物理内存不足时,系统可把一些内存中不常用到的程序放入Swap,解决物理内存不足的情况。
若系统安装时开辟的Swap空间太小,可通过手动创建Swap文件。
一、创建文件
1)mount -a
加载“/etc/fstab”中描述的所有文件系统。
2)dd if=/dev/zero of=kwxgd bs=1024 count=1024000
SSH执行以上命令,创建一个名为kwxgd的1G 空文件(写0占用磁盘)。
if=/dev/zero : Read from /dev/zero file. /dev/zero is a special file in that provides as many null characters to build storage file called kwxgd.
of=kwxgd : Read from /dev/zero write storage file to kwxgd.
bs=1024 : Read and write 1024 BYTES bytes at a time.
count=1024000 : Copy only 1024000 BLOCKS input blocks.
二、制作为Swap文件
chown root:root kwxgd
chmod 600 kwxgd
修改kwxgd的权限,只有root可以读写
mkswap kwxgd
SSH执行以上命令,将生成的kwxgd制作为SWAP文件,若没有制作SWAP文件,执行下一步可能会出现:“swapon: kwxgd: read swap header failed: Invalid argument”错误。
三、让Swap文件生效
swapon kwxgd
SSH执行以上命令,使“kwxgd”这个Swap文件生效,并叠加进当前sawp空间中。
四、查看当前SWAP
swapon -s
SSH执行以上命令,查看当前swap的情况。
设置vm.swappiness
echo "vm.swappiness = 36" >> /etc/sysctl.conf
先清空swap,执行
sysctl -p
表示系统进行交换行为的程度,数值(0-100)越大,越可能发生磁盘交换(默认为60,越大表示越倾向于使用swap)
五、自动挂载
1)编辑/etc/fstab
vi /etc/fstab
2)按格式填入,并保存
/root/kwxgd swap swap defaults 0 1
六、清除创建的swap
1) swapoff -v kwxgd
关闭创建的swap分区
2) 删除 /etc/fstab开机挂载对应配置
vi /etc/fstab
删除
/root/kwxgd swap swap defaults 0 1
保存
3)mount -a
重加载“/etc/fstab”中描述的所有文件系统。
4)rm kwxgd
删除创建的swap文件
关注
建立“swap”分区,swap分区是通过文件系统类型这一项选择出来的,大小设定为物理内存的2倍,生产环境中一般的服务器内存都很大,动辄就是几十GB,几百GB,如果按照2倍的物理内存来分配,那岂不是很大,很恐怖,所以这里有一个规则:
①内存大小在8GB以下,按照2倍的内存大小进行分配swap分区容量
②内存大小在8GB以上,swap分区容量统一为16GB
cat create_swap.sh
#!/bin/bash
#create swap
#相应目录创建文件
mkdir -p /usr/local/swap
cd /usr/local/swap
dd if=/dev/zero of=swap1 bs=1024 count=1024000
#生成swap文件
mkswap swap1
#使swap文件生效
swapon swap1
#开机自动加载
echo "/usr/local/swap/swap1 swap swap defaults 0 1" >> /etc/fstab
#查看当前swap信息
swapon -s