swap分区
SWAP简介
相当于Windows的虚拟内存。
在物理运行内存不够的时候,将内存缓存到硬盘中,充当内存,缓解系统压力,保障系统不宕机。
服务器到底要不要swap
大内存服务器是否还需要swap?
建议还是象征意义的设置一下。
swap默认是内存占用40%
就开始使用swap,可以调整内存占用比例为80%
再开始使用swap
有些服务器,比如K8S特殊要求
,可以不要swap
.
线上服务器swap设置建议
线上服务器要设置swap,平时可能用不上,为了应对业务猛增时减少宕机的风险。
阿里云真的不需要swap吗?
不管官方建议不建议,都要设置swap。
创建swap
swap配置多少比较合适
参考: https://segmentfault.com/a/1190000008125116
查看swap大小
# 查看swap
[rocky root ~]# free -h
total used free shared buff/cache available
Mem: 1.9Gi 226Mi 1.3Gi 8.0Mi 435Mi 1.5Gi
Swap: 2.0Gi 0B 2.0Gi
# 查看所有交换分区
[rocky root ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -2
内存页存放位置
内存页存放位置: /sys/devices/system/memory
[root@c8 ~]# free -h
total used free shared buff/cache available
Mem: 7.3Gi 343Mi 5.8Gi 1.0Mi 1.2Gi 6.7Gi
Swap: 0B 0B 0B
[root@c8 ~]# ls /sys/devices/system/memory/ |grep -i memory |wc -l
62
# 每个memory就是128M
利用分区方式扩充swap
利用swapfile扩充swap
注:
如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
# 生成一个4G的swap文件
dd if=/dev/zero bs=4M count=1024 of=/swapfile
# 设置文件为swap格式
mkswap /swapfile
# 设置600权限
chmod 600 /swapfile
# 加载swap文件
swapon /swapfile
将swap分区或swap文件写入开机挂载才能永久生效
# 将挂载信息写入/etc/fstab文件中
/swap swap swap defaults 0 0
# 自动加载/etc/fstab中的swap
swapon -a
swap常用命令
# 显示简短的装置讯息
swapon -s
# 卸载所有swap
swapoff -a
# 卸载指定的swap文件/swap分区
swapoff /swapfile
# 加载指定的swap文件/swap分区
swapon /swapfile
修改swpapiness参数–禁用swap
swappiness
值为0
时,表示最大限度地使用物理内存
,物理内存使用完毕后,才会使用 swap 分区,swappiness
值为100
时,表示积极地使用swap
分区,并且把内存中的数据及时地置换到swap
分区
# 临时生效
echo 0 >/proc/sys/vm/swappiness
永久生效swpapiness配置
内核参数配置不使用swap
# 修改 /etc/sysctl.conf 文件中的 vm.swappiness 的值
vim /etc/sysctl.conf
# 禁用用swap
vm.swappiness = 0
# 使之永久生效
sysctl -p
关闭swap
# 先在/etc/fstab中注释swap挂载信息
sed -ri 's/.*swap.*/#&/' /etc/fstab
# 临时关闭swap
swapoff -a