抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

swap 空间,即交换空间,是 Linux 系统中类似 Windows 虚拟内存的机制,它旨在帮助设备,应对内存消耗大于内存容量的场景。

基本原理

红帽文档给出这样的描述:

当物理内存 (RAM) 已满时,将使用 Linux 中的 交换空间。如果系统需要更多的内存资源并且 RAM 已满,内存中的不活动页面将移到交换空间。虽然交换空间可以帮助具有少量 RAM 的计算机,但不应将其视为更多 RAM 的替代品。交换空间位于硬盘驱动器上,其访问时间比物理内存要慢。交换空间可以是专用的交换分区(推荐)、交换文件,或者交换分区和交换文件的组合。请注意,Btrfs 不支持 swap 空间。

背景:Zabbix 告警

Zabbix 纳管虚拟机,如果 swap 占用过高,会有如下告警:

1
High swap space usage (less than 50% free)

查看对应设备的 swap 分区占用情况:

1
2
3
4
5
╭─dsf@app ~
╰─$ free -m
total used free shared buff/cache available
Mem: 9652 7222 745 9 1999 2429
Swap: 3995 3030 965

如果排查过后,您认为此告警并不由内存异常的场景原因触发,可能需要调大 swap 分区。

红帽推荐的 swap 空间大小如下:

系统中的 RAM 量 推荐的 swap 空间 如果允许休眠则推荐使用 swap 空间
⩽ 2 GB RAM 量的 2 倍 RAM 量的 3 倍
> 2 GB – 8 GB 与 RAM 量相等 RAM 量的 2 倍
> 8 GB – 64 GB 至少 4 GB RAM 量的 1.5 倍
> 64 GB 至少 4 GB 不推荐休眠

调整 swap

操作目标是增加 10G 空间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
╭─dsf@app ~
╰─$ free -m
total used free shared buff/cache available
Mem: 9652 7222 745 9 1999 2429
Swap: 3995 3030 965
### 使用 dd 命令创建 SWAP 文件(例如创建 10GB 的 SWAP):
╭─dsf@app /usr
╰─$ sudo dd if=/dev/zero of=/usr/swap/swap0 bs=1M count=10240 status=progress
9088008192字节(9.1 GB,8.5 GiB)已复制,3 s,3.0 GB/s
记录了10240+0 的读入
记录了10240+0 的写出
10737418240字节(11 GB,10 GiB)已复制,3.49771 s,3.1 GB/s
### 设置正确的权限:使其不可读
╭─dsf@app /usr
╰─$ sudo chmod 600 /usr/swap/swap0
### 格式化为SWAP文件系统
╭─dsf@app /usr
╰─$ sudo mkswap /usr/swap/swap0
正在设置交换空间版本 1,大小 = 10 GiB (10737414144 个字节)
无标签,UUID=da341844-72da-44c5-abf5-6f2c5d9c1f61
### 启用SWAP文件
╭─dsf@app /usr
╰─$ sudo swapon /usr/swap/swap0
### 设置开机自动启用,编辑 /etc/fstab 文件
╭─dsf@app /usr
╰─$ echo '/usr/swap/swap0 none swap sw 0 0' | sudo tee -a /etc/fstab
/usr/swap/swap0 none swap sw 0 0

再次查看 swap 信息,已经生效(无需重启机器):

1
2
3
4
5
6
7
8
9
10
╭─dsf@app /usr
╰─$ free -m
total used free shared buff/cache available
Mem: 9652 7220 179 9 2563 2431
Swap: 14235 3030 11205
╭─dsf@app /usr
╰─$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 3.9G 3G -2
/usr/swap/swap0 file 10G 0B -3

参考

-EOF

查看最新版,请访问本文链接:https://blog.onehat.cn/p/4a82.html

原创作品,转载请保留出处。

评论