一、创建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博客