1926 字
4 分钟

Centos7 添加swap虚拟内存分区

文章摘要
DeepSeek R1
本文介绍虚拟机内存不足时,通过创建swap分区解决内存溢出问题。步骤包括查看内存、生成swap文件、格式化、激活并设置开机自启动,成功增加2G虚拟内存。

我的虚拟机只有512MB,但我想开多个服务,比如mysql这种就会出现内存溢出,进程会自动被kill。所以希望通过添加swap虚拟内存分区来解决这个问题。

  1. 查看自己当前的内存情况
[root@alwaysdayone /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           422M        253M         44M         25M        123M        131M
Swap:            0B          0B          0B
  1. 建立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
  1. 构建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
  1. 激活swap

用命令激活swap,立即启用交换分区文件

[root@alwaysdayone swap]# swapon swapfile
swapon: /root/swap/swapfile: insecure permissions 0644, 0600 suggested.
  1. 配置开机自启动swap
vim /etc/fstab
将/swap none swap sw 0 0 这行注释掉
新增一行 /root/swap/swapfile swap swap defaults 0 0
  1. 最后查看内存

可以发现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,如有侵权,请联系删除。

Firefly
Firefly
Hello, I'm Firefly.
公告
欢迎体验 Firefly 主题复刻版,壁纸与布局已全面同步。
查看文档