我的虚拟机只有512MB,但我想开多个服务,比如mysql这种就会出现内存溢出,进程会自动被kill。所以希望通过添加swap虚拟内存分区来解决这个问题。
- 查看自己当前的内存情况
[root@alwaysdayone /]# free -h
total used free shared buff/cache available
Mem: 422M 253M 44M 25M 123M 131M
Swap: 0B 0B 0B
- 建立swap分区文件
首先在root目录下建立swap文件夹,进入后执行命令生成swapfile,表示buffer size,count表示数量,如下使用的即10MB*200=2G;
[root@alwaysdayone ~]# mkdir swap
[root@alwaysdayone ~]# cd swap/
[root@alwaysdayone swap]# dd if=/dev/zero of=swapfile bs=10M count=200
200+0 records in
200+0 records out
2097152000 bytes (2.1 GB) copied, 38.198 s, 54.9 MB/s
[root@alwaysdayone swap]#
注意:这里我们bs(buff size)给的10M, bs大小可以根据free -h命令查看的buff/cache的大小来决定,如果给大了可能会报dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)
查看当前的文件大小可以发现已经分配文件大小
[root@alwaysdayone swap]# ll -h
total 2.0G
-rw-r--r--. 1 root root 2.0G Feb 16 11:34 swapfile
- 构建swap格式
swapfile文件创建后,需要构建swap格式于/usr/swap/swapfile 上
[root@alwaysdayone swap]# mkswap swapfile
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=f1327d47-a377-4d4d-a494-301abf42a839
- 激活swap
用命令激活swap,立即启用交换分区文件
[root@alwaysdayone swap]# swapon swapfile
swapon: /root/swap/swapfile: insecure permissions 0644, 0600 suggested.
- 配置开机自启动swap
vim /etc/fstab
将/swap none swap sw 0 0 这行注释掉
新增一行 /root/swap/swapfile swap swap defaults 0 0
- 最后查看内存
可以发现swap内存已经有2G
[root@alwaysdayone swap]# free -h
total used free shared buff/cache available
Mem: 422M 358M 6.8M 9.0M 56M 42M
Swap: 2.0G 69M 1.9G
本文转自 https://blog.csdn.net/weixin_44639164/article/details/122962707 ,如有侵权,请联系删除。