Fork me on GitHub

linux系统添加swap(虚拟内存)分区

​ 在实际的生产环境中,实际的物理内存我们经常会觉得不够用,增加物理内存的成本又比较高,一种折中方案就出来了,使用硬盘的一部分空间来做Swap(windows 下叫虚拟内存),将系统内非活动内存换页到 SWAP,以提高系统可用内存。当然在一些特殊应用(elasticsearch)的话是建议不要使用swap,会导致应用的处理能力都大幅度降低。

创建swap分区

# 预留物理空间
fallocate -l 4G /swapfile   #fallocate 比较快点  我们也可以用dd命令   dd if=/dev/zero of=/swapfile bs=1M count=4096

# 设置交换区(swap area)。
mkswap  /swapfile
# 更改swap权限
chmod 600  /swapfile

启用swap分区

# 启用swap 
swapon /swapfile
# 查看已经启用的swap 
swapon  -s

# 开机自启swap 分区
vi + /etc/fstab
  # 在文件/etc/fstab 添加以下内容
/swapfile    swap    swap    defaults        0   0 


# 启动启用 swap 
vi + /etc/rc.local 
 #在文件/etc/rc.local 添加
swapon -a

# 修改 swappiness 参数
在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
默认值为 0,表示需要在物理内存使用完毕后才会使用 SWAP 分区:

## 查看默认的swappiness参数
cat  /proc/sys/vm/swappiness

## 临时修改
sysctl -w  vm.swappiness=10
## 永久修改
vi + /etc/sysctl.conf
# 添加
vm.swappiness=10
## 让配置生效 
sysctl -p 

删除swap分区

# 关闭使用swap
swapoff /swapfile

删除 /etc/fstab 配置行/swapfile    swap    swap    defaults        0   0 
删除配置 /etc/rc.local 配置行  swapon -a
删除配置 /etc/sysctl.conf  配置行 vm.swappiness=10 并使用 sysctl -p 让配置生效

# 删除swap分区
rm -f  /swapfile
posted @ 2019-03-21 13:47  自由早晚乱余生  阅读(2759)  评论(0编辑  收藏  举报