Linux下扩展虚拟内存具体方法

2022年12月22日 1812点热度 0人点赞 0条评论

虚拟内存的意义

当物理内存占用完了后,当系统还需要更多的物理内存时,物理内存中Inactive Pages 就转移到了到Swap空间。Swap 空间是在位于硬盘上的一个逻辑分区,因此访问速度较物理内存慢。当机器的物理内存发生变化时,Swap 分区也要根据需要作相应的扩展,本篇文章重点为大家讲解一下扩展swap分区具体方法。

Linux下扩展虚拟内存具体方法

检查现有交换空间的大小

如果你想检查你现有虚拟内存的大小,可以使用命令‘free -m ’

[root@ DiskStation ~]# free -m
[root@DiskStation ~]# free -m
total used free shared buff/cache available
Mem: 15350 1357 153 3 14174 13993
Swap: 7867 213 7654

根据现有交换空间的大小,选择合适的拓展大小。

创建适合的swapfile

我们经常可以使用”dd”命令来创建一个文件,用 “if” 指定源,基本上除了 “/dev/zero” 外基本上不会写别的,而/dev/zero 是UNIX系统特有的一个文件。“of” 指定目标文件, “bs” 定义块的大小, “count” 定义块的数量,这两个参数的多少决定了目标文件的大小。

[root@DiskStation ~]# dd if=/dev/zero of=/var/swapfile bs=2048M count=1
0+1 records in
0+1 records out
2147479552 bytes (2.1 GB, 2.0 GiB) copied, 1.21878 s, 1.8 GB/s
[root@DiskStation ~]# du -h /var/swapfile
2.0G /var/swapfile

可以看到新生成了一个swapfile文件,大小为2G.

格式化刚才创建的swapfile

[root@DiskStation ~]# mkswap -f /var/swapfile
mkswap: /var/swapfile: insecure permissions 0644, fix with: chmod 0600 /var/swapfile
Setting up swapspace version 1, size = 2 GiB (2147475456 bytes)
no label, UUID=c2018d53-5604-4052-98f2-204295aa4065

可以看到格式化后成功的UUID信息

实现开机自动挂载交换文件

我们在/etc/fstab中增加一下条目 /var/swapfile swap swap defaults 0 0,就能实现开机自动挂载。

[root@DiskStation ~]# cat /etc/fstab
UUID=301b2f9f-91d3-47dd-8a43-d377cba1cd5c / ext4 defaults 1 1
UUID=812455f9-a63f-4b09-9336-05e3ada6f9a7 /boot ext4 defaults 1 2
UUID=416480d0-662c-406c-a328-b4c2f370577b swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/var/swapfile swap swap defaults 0 0

就这样即使后续重启,也能做到自动挂载。

启用swapfile,查看虚拟内存大小

[root@server]# swapon /var/swapfile
swapon: /var/swapfile:
[root@DiskStation ~]# free -m
total used free shared buff/cache available
Mem: 15350 1356 166 3 14163 13994
Swap: 9915 208 9707

可以看到,相对于初始的虚拟内存,现在增加了2G。

路灯

这个人很懒,什么都没留下

文章评论