Ubuntu扩展存储合理分配swap分区

2023-11-13


前言

我们在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修改存储

  1. Ubuntu处于关机状态,点击硬盘
    在这里插入图片描述

  2. 点击扩展
    在这里插入图片描述

  3. 修改合适的大小
    在这里插入图片描述

1.2 初始化分配的磁盘

  1. 安装分区管理工具
sudo apt-get install gparted
sudo gparted

在这里插入图片描述

  1. 右键根部分区
    在这里插入图片描述
  2. resize,将分区拖到最大
    在这里插入图片描述
  3. 再右键子集目录resize,同样的操作
    在这里插入图片描述
  4. 最后选勾即可完成
    在这里插入图片描述

2.为Ubuntu调整swap分区大小

Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

  1. 找到swap 文件位置
cat /proc/swaps

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

  1. 更改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:显示版本信息
  1. 启用新的swap文件
# 先修改文件权限
sudo chmod 600 /swapfile

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

# 最后启用swap文件
sudo swapon /swapfile
  1. 查看当前的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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu扩展存储合理分配swap分区 的相关文章

随机推荐

  • redis中关闭rdb跟aof

    当往redis中导入数据时 有时会出现redis server went away的情况 出现这一问题的原因有 导入的数据量太大 而内存不够 即内存1G 但数据有2G 此时的redis服务需要重启 可能是同一时间导入的数据太多 导致数据持久
  • CSS实现半透明边框

    CSS3实现半透明边框 一 往期文章 二 CSS hsla 函数 四 代码 三 效果图 一 往期文章 CSS3回炉计划 编码技巧 如何实现半透明边框 边框中显示背景 二 CSS hsla 函数 hsla 函数使用色相 饱和度 亮度 透明度来
  • 6.130 字符串指针和字符数组的区别

    字符串指针 1 字符串指针变量存储在栈区 其指向的字符串存储在常量区 2 字符串指针变量存储的字符串首字符的地址 并非整个字符串 3 不能对指向的字符串做任何修改 char 本质为 char const 4 字符串指针变量可以做 操作 字符
  • sed的一些用法总结

    一 sed删除中文 LANG C sed r e s x81 xFE x40 xFE g e s g e s g 删除 中文 和 和 面LANG C要加上否则报错 sed后面要使用双引号 区别使用单引号 x81 xFE x40 xFE 代表
  • 我国常用的投影坐标系_ArcGIS中的坐标系

    点击上方 蓝字 带你去看小星星 今天将解决以下问题 1 分清地理坐标系和投影坐标系 2 什么地区选什么带号 3 如何使用有关 坐标系 的三个工具 今天的内容有点多 咱一次性说明白 可以先收藏 之后遇到再翻也方便 暗示收藏 转发 再看 Arc
  • 关于蓝桥杯的乱七八糟的话(经验、心得、建议、技巧)

    参赛经验 心得 先介绍一下自身情况 我参加的是C C B组 所在的赛区是江苏赛区 参加过三次蓝桥杯 最好的成绩是国三 没错我就是个小辣鸡 蓝桥杯省赛题目一般有结果填空 代码填空和程序题三种题型 但是第十届已经没有了代码填空 填空题只要结果
  • leaftlet 中Polygon的使用属性

    绘制一个面 var latlngs 37 109 05 41 109 03 41 102 05 37 102 04 var polygon L polygon latlngs color red addTo map map fitBound
  • videopose3d制作自己的视频转换

    videopose3d制作自己的视频转换 最近学了深度学习 对其中的人体姿态检测和识别感兴趣 但是网上包括官方网站的都是对源码的解读 没有一个是利用自己的视频进行姿态检测和渲染的 因此自己试着按照官方的in the wild教程试了一下 很
  • Python开发图形可视化界面程序(一)

    前言 近来使用Python开发了一些简单的辅助脚本 发现这真的是一门很有趣的语言 于是乎 便想着使用python来开发一些具有图形可视化界面 GUI 的程序 对于python来说 支持其开发GUI可视化程序的框架非常之多 简直让人眼花燎原
  • bugfree pdo mysql扩展模块_windows平台bugfree3.0.3搭建心得(nginx+php+mysql+bugfree+RunHiddenConsole)...

    之前没做过windows服务器管理 我的认识还停在个人用户操作系统的认知上 这次搭建bugfree环境 挺多麻烦的 在安装之前 我百度的bugfree搭建大多是使用xampp集成环境的安装方法 然后我就照做 下载xampp 然后安装到系统c
  • C语言实现两数相加的三种方法

    笔试题里面看到的 总结一下 分享给需要的小伙伴 一 原始办法 这种方法最直观明了 int add int x int y return x y 二 利用printf的返回值 这个操作鲜为人知 include
  • linux域名解析

    linux域名解析 首先确保你的电脑可以连上网 服务端和客户端能够连通 1 本地解析 优先级高 在服务端中 ping www baidu com 找出ip 在客户端中的浏览器中搜索ip地址就可以上网 但是ip地址记起来非常不方便 所以这里用
  • 网贷风控体系之-风控模型

    网贷风控体系之 风控模型 大数据风控模型主要分为两类 反欺诈模型 交叉验证 聚类分析 黑灰名单 二元好坏模型 准入阶段 授信额度期限利率模型 评分卡模型 LR XGBoost 贷中阶段 风险变化评估 风险预警 贷后阶段 催收时机 催收方法
  • TVM:源码编译安装

    TVM Linux源码编译安装 笔者环境 OS Ubuntu 18 04 CMake 3 10 2 gcc 7 5 0 cuda 11 1 编译安装过程总览 本文将简介 tvm 的编译安装过程 包含两个步骤 通过C 代码构建共享库 设置相关
  • Android - BlueTooth BLE 之 Central 与 Peripheral

    一 前言 Andorid 5 0 之前是无法进行 外围设备开发的 在Android 5 0 API 21 android bluetooth le包下 新增加 Scaner相关类和 Advertiser 相关类 目前最后使用Scanner相
  • 49天精通Java,第5天,Java控制台输入输出语句

    目录 一 控制台输出 二 读取输入 三 格式化输出 1 类型转换字符 2 代码实例
  • 搭建github服务器_【教程篇】使用GitHub+Hexo搭建个人静态博客

    嗨 大家好 你们的万金油管家小e又来了 这次就教大家一些利用GitHub和Hexo本地服务器搭建个人博客的教程 可能教程要好几期 那么这期就先从最最基础的GitHub的注册 以及本地环境的搭建 GitHub仓库的建立等等开始 近年来很多人都
  • 十大应用安全威胁

    常见应用安全威胁 OWASP TOP 10 2013 注入 失效的身份认证和会话管理 跨站脚本攻击 XSS 不安全的直接对象引用 安全配置错误 敏感信息泄露 功能级访问控制缺失 跨站请求伪造 CSRF 使用含有已知漏洞的组件 未验证的重定向
  • 【MyBatis】MyBatis 二级缓存全详解

    1 概述 转载 MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存 什么是 SqlSession 级别的缓存呢 一级缓存的本质是什么呢 以及一级缓存失效的原因 我希望
  • Ubuntu扩展存储合理分配swap分区

    文章目录 前言 1 为Ubuntu扩存 外部存储 1 1修改存储 1 2 初始化分配的磁盘 2 为Ubuntu调整swap分区大小 总结 前言 我们在Ubuntu上运行某些大型游戏或者编译一些工程代码的时候 往往会遇到内存或外部存储不够导致