Linux:修改Swap分区大小
1、前言
先查看Swap分区大小 free -h
如果创建过Swap,那么首先关闭Swap功能 swapoff -a
,后续修改完再 swapon -a
2、创建Swap分区
创建分区 dd if=/dev/zero of=/home/swap bs=1M count=2048
命令说明:
dd : 用缓冲区块拷贝一个文件,并在拷贝的同时进行指定的转换
if : 输入文件名。/dev/zero (特殊的字符设备文件,可以提供无限的空数据流)
of : 输出文件名。/home/swap (会自动创建该文件)
bs : 指定一个块的字节数。默认单位Byte
count : 块的数量
将这个分区变成swap分区,(并复制生成的UUID号,也可以不复制UUID)
/sbin/mkswap /home/swap
3、设置分区使用阈值
查看Swap使用条件
cat /proc/sys/vm/swappiness
或者 sysctl -a | grep swappiness
设置Swap交换阈值
vim /etc/sysctl.conf
vm.swappiness:实际内存剩余多少占比时使用分区
[0-100],0是实际内存满了才使用swap,当实际内存使用占比达到 100-${swappiness} 时,开始使用swap
vm.swappiness=30
4、使配置生效
保存后生效,激活配置信息
sysctl -p
使这个swap分区生效(启用此交换分区的交换功能)
/sbin/swapon /home/swap
5、配置持久化
重启之后swap还是为零,需要修改配置文件
vim /etc/fstab
添加
/home/swap swap swap defaults 0 0
# 或者使用UUID (还是用上边那个吧,主要是便于以后编辑时知道swap分区在哪儿,注意别乱动位置就行)
# UUID=833aa13d-b851-4954-bcf3-a25710b19a04 swap swap defaults 0 0
参数说明:
第一个参数是 设备名或者label或者UUID使用设备名,一旦磁盘插槽出现变动,会出现名称不对的问题
使用label,不会出现上述问题,但需要注意label name。
使用UUID,分区格式化后的唯一标识,使用UUID,能够指定硬盘格式化后的分区位置。相当于MAC地址第二个参数是 Mount Point 挂载点;挂载的路径
第三个是FileSystem; 挂载硬盘的格式
第四个是 Parameters; 挂载类型,此处为默认值,同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 。
参数 说明 Async/sync 设置是否为同步方式运行,默认为async auto/noauto 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto rw/ro 是否以以只读或者读写模式挂载 exec/noexec 限制此文件系统内是否能够进行"执行"的操作 user/nouser 是否允许用户使用mount命令挂载 suid/nosuid 是否允许SUID的存在 Usrquota 启动文件系统支持磁盘配额模式 Grpquota 启动文件系统对群组磁盘配额模式的支持 Defaults 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 第五个是fs_freq,能否被dump命令备份;用来决定哪一个文件系统需要执行dump操作(dump执行ext2的文件系统的备份操作)
参数 说明 0 不做dump备份 1 每天进行dump备份 2 不定期进行dump备份操作 第六个是fs_passno,是否检验扇区;是系统重启时fsck程序检测磁盘(fsck检测和修复文件系统)的顺序号,fsck按序号检测磁盘
参数 说明 0 表示该文件系统不被检测 1 最早检验(一般根目录会选择) 2 1级别检验完成之后进行检验