Linux 创建 swap 空间

文章
林里克斯

Linux 下创建 虚拟内存空间 Swap


实验平台:CentOS 7.7.1908


操作步骤:


一、swap 介绍


1.swap的工作机制

SWAP 意思是交换,顾名思义,当某进程向 O S请求内存发现不足时,OS 会把内存中暂时不用的数据交换出去,放在 SWAP 分区中,这个过程称为 SWAP OUT。当某进程又需要这些数据且 OS 发现还有空闲物理内存时,又会把 SWAP 分区中的数据交换回物理内存中,这个过程称为 SWAP IN

当然,swap 大小是有上限的,一旦 swap 使用完,操作系统会触发 OOM-Killer 机制,把消耗内存最多的进程 kill 掉以释放内存。

2.swap触发条件

  • Linux 会在两种场景下触发内存回收

一种是在内存分配时发现没有足够空闲内存时会立刻触发内存回收;
一种是开启了一个守护进程(swapd进程)周期性对系统内存进行检查,在可用内存降低到特定阈值之后主动触发内存回收。


二、创建 swap 空间


1.查看服务器空间

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1838        1612         129           2          96         103
Swap:             0           0           0

2.使用 dd 命令创建一个 4G 的空间

$ dd if=/dev/zero of=/var/swap bs=1024 count=4096000
4096000+0 records in
4096000+0 records out
4194304000 bytes (4.2 GB) copied, 14.7809 s, 284 MB/s
# if 表示 infile,of 表示 outfile,bs=1024 代表增加的模块大小,count=2048000 代表 2048000 个模块,也就是2G空间

3.将目的文件设置为 swap 分区文件

$ mkswap /var/swap
Setting up swapspace version 1, size = 4095996 KiB
no label, UUID=cd2425bc-f73d-4584-9ca1-c675d1a16905

$ mkswap -f /var/swap
mkswap: /var/swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4095996 KiB
no label, UUID=df0e6cac-1c6b-4c67-a272-64e463b9bb7b

4.加载 swap 分区

$ swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.

$ cat /proc/swaps 
Filename                Type        Size    Used    Priority
/var/swap                               file        4095996 0   -1

或

$ swapon  -s
Filename                Type        Size    Used    Priority
/var/swap                               file    2047996 520 -2
#查看swap当前状态

5.是swap永久生效

$ vim /etc/fstab

/var/swap swap swap defaults 0 0

6.以清理swap分区

$ swapoff /var/swap
$ rm -rf /var/swap

三、swap 什么时候使用


1.在 Linux 里面,swappiness 的值的大小对如何使用 swap 分区是有着很大的联系的。

swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间

swappiness=100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面
  • 两个极端,对于 CentOS 默认为 0,Ubuntu 的默认为 60,建议修改为 10。

2.查看你的系统里面的swappiness

$ cat /proc/sys/vm/swappiness
不出意外的话,你应该看到是0

3.修改swappiness值为10

$ sysctl vm.swappiness=10
#这只是临时性的修改,在你重启系统后会恢复默认的值

$ vim /etc/sysctl.conf
#在这个文档的最后加上这样一行:
vm.swappiness = 10
#这样重启之后配置也不会失效。

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

734 0 2020-08-17


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-05-19

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 223098 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!