共计 1722 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 在 linux 磁盘刚分区的时候,我们会划分一个 swap 分区,这块分区作为一块虚拟内存,承担着扩充内存的作用。然而在工作中我们会遇到虚拟内存也不够用的情况,这个时候我们也不能重新给磁盘进行分区,只能通过增加一个 swap 文件,来扩充我们的虚拟内存。接下来,山医的小凡将手把手带你扩充你的虚拟内存。 |
1. 检查现有交换空间的大小
如果你想检查你现有虚拟内存的大小,可以使用命令‘free -m’
[root@chenfancentos ~]# free -m
total used free shared buffers cached
Mem: 988 164 823 0 26 48
-/+ buffers/cache: 90 898
Swap: 1999 0 1999
根据现有交换空间的大小,选择合适的拓展大小。
2. 创建适合的 swapfile
我们经常可以使用 ”dd” 命令来创建一个文件,用“if”指定源,基本上除了“/dev/zero”外基本上不会写别的,而 /dev/zero 是 UNIX 系统特有的一个文件。“of”指定目标文件,“bs”定义块的大小,“count”定义块的数量,这两个参数的多少决定了目标文件的大小。
[root@chenfancentos ~]# dd if=/dev/zero of=/tmp/swapfile bs=300M count=1
记录了 1 +0 的读入
记录了 1 +0 的写出
314572800 字节 (315 MB) 已复制,13.9027 秒,22.6 MB/ 秒
[root@chenfancentos ~]# du -h /tmp/swapfile
300M /tmp/swapfile
可以看到新生成了一个 swapfile 文件,大小为 300M.
3. 格式化刚才创建的 swapfile
[root@chenfancentos ~]# mkswap -f /tmp/swapfile
Setting up swapspace version 1, size = 307196 KiB
no label, UUID=c4e2a8b1-fa09-41ab-bcbf-63c273ed9598
可以看到格式化后成功的 UUID 信息
4. 实现开机自动挂载交换文件
我们在 /etc/fstab 中增加一下条目 /tmp/swapfile swap swap defaults 0 0,就能实现开机自动挂载。
[root@chenfancentos ~]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Sat Apr 2 19:37:01 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
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
/tmp/swapfile swap swap defaults 0 0
就这样即使后续重启,也能做到自动挂载。
5. 启用 swapfile, 查看虚拟内存大小
[root@chenfancentos ~]# swapon /tmp/swapfile
[root@chenfancentos ~]# free -m
total used free shared buffers cached
Mem: 988 136 852 0 10 50
-/+ buffers/cache: 74 913
Swap: 2299 0 2299
可以兴奋的看到,相对于初始的虚拟内存,现在增加了 300M。是不是有点激动,想要体验 Linux 之美,跟着山医的小凡一起动手实验。
正文完
星哥玩云-微信公众号