Linux 设置swap
适用于没有开启swap的情况
# 1. swap设置大小
- 安装系统时,选择swap分区;swap不是越大越好,越大的时候说明内存不够用,应该增加内存。
- redhat官方建议:
物理内存小于等于2GB的swap, 设置为物理内存的2倍
物理内存大于2GB小于等于8G时swap, 置为等同与物理内存的大小
物理内存大于8GB时swap, 置为大于等于4GB但不超过8GB。
- 建议
内存小于 4GB 时,推荐不少于 2GB 的 swap 空间
内存 4GB~16GB,推荐不少于 4GB 的 swap 空间
内存 16GB~64GB,推荐不少于 8GB 的 swap 空间
内存 64GB~256GB,推荐不少于 16GB 的 swap 空间
# 2. swap何时使用的时机(开启的阀值)
# 查询默认的值
- cat /proc/sys/vm/swappiness
- centos7默认值可能是30;就是当内存使用>=(100-30=70)%内存总量时,开始使用内存;
- 当值为0时,表示内存使用率>100%时使用内存,则表明不使用swap;
- 当值为100时,表示内存使用率>0%时使用内存,这样则无时无刻不使用swap;
# 如何修改swappiness(开启的阀值)
- 当使用内存>=90%时才使用内存;
- `临时设置`
echo 10 > /proc/sys/vm/swappiness
sysctl -p #生效
- `永久设置`
echo "vm.swappiness=10" >> /etc/sysctl.conf #永久修改
sysctl -p #生效
- 能有效使用内存,增强性能;如果机器一直长期超过70%的内存使用量,实际应该想想是不是要增加内存;
# 3. 首先查看系统是否有swap分区
- 可以看到swap分区大小为0,即没有swap分区。
[root@cnbj91vl00886 dev]# free -m
total used free shared buff/cache available
Mem: 7820 956 5569 120 1294 3055
Swap: 0 0 0
# 4. 开始创建swap分区
# 4.1、使用dd命令创建一个swap分区,在这里创建一个4G大小的分区
- if=文件名:表示指定源文件
- of=文件名:表示指定目的文件,可以自己去设定目标文件路径。
- bs=xx:同时设置读入/写出的“块”大小
- count=xx:表示拷贝多少个“块”
- bs * count 为拷贝的文件大小,即swap分区大小
[root@cnbj91vl00886 dev]# dd if=/dev/zero of=/root/swapfile bs=1M count=8192
# 4.2、格式化新建的分区文件
[root@cnbj91vl00886 dev]# mkswap /root/swapfile
# 4.3、将新建的分区文件设为swap分区
[root@cnbj91vl00886 dev]# swapon /root/swapfile
# 4.4、设置开机自动挂载swap分区
[root@cnbj91vl00886 dev]# echo "/root/swapfile swap swap defaults 0 0" >> /etc/fstab
# 5. 最后再free-h 去查看分区情况
[root@cnbj91vl00886 dev]# free -h
total used free shared buff/cache available
Mem: 7.6G 957M 5.4G 120M 1.3G 3.0G
Swap: 8.0G 0B 8.0G