前言
我们在Ubuntu上运行某些大型游戏或者编译一些工程代码的时候,往往会遇到内存或外部存储不够导致编译不成功,例如编译LLVM时需要比较大的内存。
我自己在虚拟机上傻瓜式安装了Ubuntu20,自动分配外存:30GB,内存4GB,单核心的两个处理器,编译llvm到一半就报内存不够(也有可能是swap分区太小),collect2: fatal error: ld terminated with signal 9 [Killed]
,如下图,Memory分配了8GB,swap分区10GB,还是没有够用。
本文中将介绍如何更改Ubuntu的存储空间、调整swap分区大小。
ubuntu 可以通过Alt+f2 键入gnome-system-monitor 进入系统监视器 来查看资源占用情况
1. 为Ubuntu扩存(外部存储)
1.1修改存储
-
Ubuntu处于关机状态,点击硬盘
-
点击扩展
-
修改合适的大小
1.2 初始化分配的磁盘
- 安装分区管理工具
sudo apt-get install gparted
sudo gparted
- 右键根部分区
- resize,将分区拖到最大
- 再右键子集目录resize,同样的操作
- 最后选勾即可完成
2.为Ubuntu调整swap分区大小
Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
- 找到swap 文件位置
cat /proc/swaps
说明swap文件名为swapfile ,位于根目录下/
- 更改swap大小
# 停止swap文件
sudo swapoff /swapfile
# 删除swap文件
sudo rm /swapfile
# 创建新的swap文件,以创建10GB大小为例
sudo dd if=/dev/zero of=/swapfile bs=1GB count=10
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:显示版本信息
- 启用新的swap文件
# 先修改文件权限
sudo chmod 600 /swapfile
# 然后设置为swap文件
sudo mkswap -f /swapfile
# 最后启用swap文件
sudo swapon /swapfile
- 查看当前的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 显示程序版本然后离开
总结
- 分享即学,方便日后查阅。
- 参考:https://blog.csdn.net/qq_35395195/article/details/125616388