1. 源由
现在的系统,内存越来越大,从我接触的时候16MB/32MB/64MB的时代,已经来到了动不动就是4GB/8GB/16GB的时代。
最大的差异,就是当时MB的时代是台式计算机上的内存,而现在GB是嵌入式系统上的内存。
当然,这里有一点夸张的说法,因为GB嵌入式系统通常是那种使用AI算法,视频处理的边缘端嵌入式系统。而常规意义上的嵌入式系统还是在MB的系统。
这么大的系统内存,通常来说我们不太关注内存使用量,因为绰绰有余。但是当实际产品优化以及一些极限情况下,这个确实不容忽视的细节。
接下来,我们就看下Linux系统上如何配置swap来解决虚拟内存的问题。
2. 检查
要查看 Linux 系统中 swap
的配置,可以使用以下命令:
2.1 查看当前 swap
的使用情况
swapon --show
该命令会显示所有活动的 swap
分区或文件的信息,包括名称、大小、已用空间和优先级。
示例输出:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 512M -2
如果没有任何输出,说明当前系统没有启用 swap
。
2.2 查看总的 swap
空间和使用情况
free -h
示例输出:
total used free shared buff/cache available
Mem: 8.0G 3.2G 2.5G 512M 2.3G 4.1G
Swap: 2.0G 512M 1.5G
这里可以看到 swap
的总大小和已用空间。
2.3. 检查 swap
分区或文件的配置
-
查看系统分区配置:
cat /etc/fstab
查找类似于以下内容的行:
/swapfile none swap sw 0 0
这表示系统使用的是
swapfile
。 -
如果是
swap
分区,可能会看到:/dev/sda2 none swap sw 0 0
2.4 检查 swap
的优先级
cat /proc/swaps
此命令会显示与 swapon --show
类似的信息,但包含更底层的细节。
2.5 查看 swappiness
配置
swappiness
决定了系统使用 swap
的频率,范围为 0 到 100。