Linux:创建swap分区【缓解内存不足】

一、创建swap

swap分区的创建和激活等操作:

# 在根目录创建分区路径
sudo mkdir -p /swap/
# 设置分区的大小
# bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB
sudo dd if=/dev/zero of=/swap/swap0 bs=64M count=64
# 设置该目录权限
sudo chmod 0600 /swap/swap0
# 创建SWAP文件
sudo mkswap /swap/swap0
# 激活SWAP文件
sudo swapon /swap/swap0
# 查看SWAP信息是否正确
sudo swapon -s

   
root@iZm5e9phbzdxx0lysrv9t2Z:/# mkdir swap
root@iZm5e9phbzdxx0lysrv9t2Z:/# sudo dd if=/dev/zero of=/swap/swap0 bs=64M count=64
64+0 records in
64+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 36.9524 s, 116 MB/s
root@iZm5e9phbzdxx0lysrv9t2Z:/# sudo chmod 0600 /swap/swap0
root@iZm5e9phbzdxx0lysrv9t2Z:/# sudo mkswap /swap/swap0
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=e00dc90b-e1a7-4a21-b5d2-24bd2a1208d1
root@iZm5e9phbzdxx0lysrv9t2Z:/# sudo swapon /swap/swap0
root@iZm5e9phbzdxx0lysrv9t2Z:/# sudo swapon -s
Filename				Type		Size	Used	Priority
/swap/swap0                            	file    	4194300	0	-2
root@iZm5e9phbzdxx0lysrv9t2Z:/# 

分区创建并激活的效果图如下:
在这里插入图片描述

但是这个只对当前有效,如果想下次重启系统后还继续有效,需要将配置写入到/etc/fstab文件中。

二、持久化swap

root@iZm5e9phbzdxx0lysrv9t2Z:/# vim /etc/fstab

/etc/fstab文件中最后一行添加如下内容:

/swap/swap      swap  swap    defaults             0 0

三、删除swap

swap0文件的路径在/swap/下,编译完后, 如果不想要交换分区了, 可以删除。

删除交换分区的命令:

sudo swapoff /swap/swap0
sudo rm /swap/swap0
   

释放空间命令:

sudo swapoff -a
#详细的用法:swapoff --help
#查看当前内存使用情况:free -m

   

四、Ubuntu调整swap大小

1. 找到swap文件位置

cat /pro/swaps

在这里插入图片描述
说明swap文件名称为swapfile,位于 / 根目录
在这里插入图片描述

2. 停止swap文件

sudo swapoff /swapfile

在这里插入图片描述

3. 删除swap文件

sudo rm /swapfile

在这里插入图片描述
在根目录下找不到swapfile,说明删除成功

4. 创建新的swap文件,以创建64G大小为例

sudo dd if=/dev/zero of=/swapfile bs=1GB count=64

Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=<关键字>,关键字可以有以下11种:
conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swap:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
--help:显示帮助信息
--version:显示版本信息

在这里插入图片描述

5. 启用新的swap文件

# 先修改文件权限
sudo chmod 600 /swapfile

# 然后设置为swap文件
sudo mkswap -f /swapfile

# 最后启用swap文件
sudo swapon /swapfile

在这里插入图片描述

6. 查看当前swap文件大小

free --giga

在这里插入图片描述

用法:
 free [选项]

选项:
 -b, --bytes         以字节显示输出
     --kilo          使用千字节显示输出
     --mega          使用兆字节显示输出
     --giga          使用吉字节显示输出
     --tera          使用太字节显示输出
     --peta          show output in petabytes
 -k, --kibi          show output in kibibytes
 -m, --mebi          show output in mebibytes
 -g, --gibi          show output in gibibytes
     --tebi          show output in tebibytes
     --pebi          show output in pebibytes
 -h, --human         显示人类可读的输出
     --si            使用 1000 的倍数而非使用 1024
 -l, --lohi          show detailed low and high memory statistics
 -t, --total         show total for RAM + swap
 -s N, --seconds N   repeat printing every N seconds
 -c N, --count N     repeat printing N times, then exit
 -w, --wide          宽版输出

     --help     显示此帮助信息并退出
 -V, --version  显示程序版本然后离开

在根目录下也能看到新建的swapfile
在这里插入图片描述

7. 永久启用swap

vim /etc/fstab

swapfile所在行内容如下即可
在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识

 




参考链接:

linux下调整swap大小(swapfile)解决方法_linux swapfile 特别大_Αλήθεια的博客-CSDN博客

Ubuntu调整swap大小_ubuntu swap_MAVER1CK的博客-CSDN博客

一文搞懂linux中swap分区的创建与使用,linux的swap空间创建的2种方法_/*守护她的笑容的博客-CSDN博客_linux创建swap
【问题解决】内存不足引起“gcc: internal compiler error: Killed (program cc1plus)”以及解决办法_little_stupid_child的博客-CSDN博客
https://cuichongxin.blog.csdn.net/article/details/106208891

解决C++: fatal error: Killed signal terminated program cc1plus-pudn.com

C++: fatal error: Killed signal terminated program cc1plus的问题解决_Y1皇_的博客-CSDN博客

linux永久挂载swap分区,Linux建一个swap文件来充当交换空间,以建立SWAP分区_xingming Zhenshi的博客-CSDN博客

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值