# java

Centos7 添加swap虚拟内存分区

2022-08-07 20:30:28
20

我的虚拟机只有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 ,如有侵权,请联系删除。

最后编辑于 2024-10-31 14:05:44