在Linux下禁用、添加|修改Swap分区(虚拟内存)教程

在Linux下禁用、添加|修改Swap分区(虚拟内存)教程

swap分区

linux内存通过 virtual memory 虚拟内存来管理整个内存, 虚拟内存管理着物理内存,也管理着swap交换空间。Linux使用交换空间来增加主机可用的虚拟内存量。

Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。

我们一般所说的swap,指的是一个交换分区或文件。在Linux上可以使用swapon -s命令查看当前系统上正在使用的交换空间有哪些,以及相关信息。

从功能上讲,交换分区主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致oom或者更致命的情况出现

Linux Swap 分区大小选择

Linux Swap 分区大小跟你服务器本身的物理内存大小有关,内存越大,设置的 Swap 分区也应该越大,两者的关系如下。

物理内存 交换分区(SWAP)
<= 4g 至少 4G
4~16G 至少 8G
16G~64G 至少 16G
64G~256G 至少 32G

swappiness

/proc/sys/vm/swappiness这个文件,可以用来调整跟swap相关的参数。这个文件的默认值是60,可以的取值范围是0-100。

这个文件的值用来定义内核使用swap的积极程度:

  • 值越高,内核就会越积极的使用swap;
  • 值越低,就会降低对swap的使用积极性。
  • 如果这个值为0,那么内存在free和file-backed使用的页面总量小于高水位标记(high water mark)之前,不会发生交换。

Linux下禁用swap分区

  1. 第一步,关闭 swap 分区
    关闭 swap 分区,如果无法关闭 Swap 分区,那可能是因为物理内存当前用量 + Swap 分区当前用量已经超过了物理内存的总大小,我们可以先重启服务器,在机器刚启动的时候关闭 Swap 分区。
    执行完命令,建议多等一会~
swapoff -a
  1. 修改配置文件
    修改配置文件,—注释"/dev/mapper/centos_master-swap swap"一行
vim /etc/fstab
  1. 确认swap已经关闭
    检查 SWAP 状态, —Swap一行全部为0则为关闭状态,若都显示 0 则表示关闭成功
[root@dev logs]# free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        5.3G        284M        822M          9G        8.9G
Swap:            0B          0B          0B
[root@dev logs]#
  1. 调整 swappiness 参数
echo 0 > /proc/sys/vm/swappiness   # 临时生效

永久生效

vim /etc/sysctl.conf

修改 vm.swappiness 的修改为 0

vm.swappiness=0

使配置生效
sysctl -p

在Linux下添加|修改Swap分区

在Linux下添加|修改Swap分区(虚拟内存)教程
参考URL: https://www.liujason.com/old-blog/2832.html

第一步,确认是否添加过swap分区
为了防止出现任何以外,请先看一下内存中是否已经有swap:

free -m

一般情况下运行命令后会出现如下的内容:

total used free shared buffers cached
Mem: 1840 1614 226 15 36 1340
-/+ buffers/cache: 238 1602
Swap: 0 0 0
如果你看到 Swap 分区中是0的话,那么就可以接着看第二步

如果不是的话说明你已经有了swap分区,你可以通过下面的命令查看swap文件:

# swapon -s
Filename				Type		Size	Used	Priority
/swap.img                              	file    	4194300	104448	-2

第二步,创建Swap分区
mkdir /swap
cd /swap

使用dd来创建一个空的swap文件(120G 2048*60为例):
dd if=/dev/zero of=/swap/swapfile count=122880 bs=1M

猜你喜欢

转载自blog.csdn.net/inthat/article/details/107211445
今日推荐