当前位置: 首页 > article >正文

别再让Ubuntu卡成PPT!手把手教你用swapfile把交换空间从1G扩容到64G(附权限修复)

Ubuntu系统Swap空间扩容实战从1G到64G的完整解决方案当你在Ubuntu上运行内存密集型任务时是否遇到过系统突然变得异常缓慢甚至完全卡死的情况很多拥有大内存如32GB或更高的用户可能会惊讶地发现他们的高性能系统竟然会因为默认配置的1GB Swap空间而频繁出现性能瓶颈。本文将带你深入了解Swap空间的运作机制并提供一套完整的解决方案无需重装系统就能安全地将Swap空间从1GB扩展到64GB。1. 理解Swap空间及其重要性Swap空间交换空间是Linux系统中用于内存管理的重要机制。当物理内存(RAM)被完全占用时系统会将部分不活跃的内存页面移动到Swap空间从而为当前活跃的进程腾出更多内存。虽然Swap的访问速度远低于物理内存因为存储在硬盘上但它能有效防止系统因内存耗尽而崩溃。现代Ubuntu桌面版默认只分配1GB的Swap空间这对于拥有大内存的用户来说往往不够合理。根据Linux内存管理的最佳实践Swap大小建议内存≤4GBSwap应为内存的2倍4GB内存16GBSwap等于内存大小内存≥16GBSwap至少为内存的1/2但不超过32GB对于32GB内存的系统64GB的Swap空间是一个合理的配置特别是当你需要运行多个虚拟机或容器处理大型数据集如机器学习、视频编辑长时间不重启系统需要系统休眠(hibernate)功能2. 诊断当前Swap使用情况在开始调整Swap空间前我们需要先了解系统的当前状态。打开终端执行以下命令free -h典型输出如下total used free shared buff/cache available Mem: 31Gi 1.2Gi 28Gi 154Mi 1.8Gi 29Gi Swap: 976Mi 0.0Ki 976Mi关键指标解读Mem行显示物理内存状态available表示实际可用的内存量Swap行显示交换空间状态total显示当前Swap总量示例中为976MB≈1GBused显示已使用的Swap量另一个有用的命令是检查系统内存压力vmstat 1 5关注si(swap in)和so(swap out)列的非零值这表示系统正在频繁使用Swap空间。3. 创建Swap文件的详细步骤与传统分区方式不同我们将使用Swap文件来实现动态扩容。这种方法更灵活无需重新分区且可以随时调整大小。3.1 准备工作首先确保有足够的磁盘空间。检查磁盘使用情况df -h你需要至少64GB的可用空间建议在根分区/下。3.2 创建Swap文件以下是创建64GB Swap文件的完整流程创建专用目录可选但推荐sudo mkdir /swap使用dd命令创建文件sudo dd if/dev/zero of/swap/swapfile bs1G count64 statusprogressif/dev/zero输入源全零of/swap/swapfile输出文件路径bs1G每次写入1GBcount64写入64次statusprogress显示进度设置正确的权限sudo chmod 600 /swap/swapfile将文件格式化为Swapsudo mkswap /swap/swapfile启用Swap文件sudo swapon /swap/swapfile验证Swap是否生效free -h3.3 性能优化建议为了获得更好的Swap性能可以考虑以下优化使用更快的存储设备如果可能将Swap文件放在NVMe SSD而非传统硬盘上调整swappiness控制系统使用Swap的倾向echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p值范围0-100建议桌面环境设为10-304. 解决常见问题与权限修复在Swap文件使用过程中可能会遇到几个典型问题4.1 不安全的权限0644警告当你看到类似这样的警告swapon: /swap/swapfile不安全的权限 0644建议使用 0600。这意味着Swap文件的权限设置过于宽松可能带来安全风险。解决方法sudo chmod 600 /swap/swapfile sudo swapon /swap/swapfile4.2 系统重启后Swap失效要使Swap文件在重启后自动生效需要编辑/etc/fstab文件获取Swap文件的UUID可选但推荐sudo findmnt -no UUID -T /swap/swapfile编辑fstab文件sudo nano /etc/fstab添加以下行使用UUID或路径/swap/swapfile none swap sw 0 0或UUIDyour-uuid-here none swap sw 0 0验证fstab配置sudo mount -a4.3 Swap空间不足时的紧急处理如果系统已经因Swap耗尽而卡死可以尝试通过SSH连接到系统如果可能终止占用内存最多的进程top -o %MEM记下PID然后kill -9 [PID]临时增加Swap空间即使只有小量sudo fallocate -l 1G /swap/swapfile_temp sudo chmod 600 /swap/swapfile_temp sudo mkswap /swap/swapfile_temp sudo swapon /swap/swapfile_temp5. 高级配置与维护5.1 多个Swap文件的管理Ubuntu支持同时使用多个Swap文件或分区。要查看所有活动的Swap空间swapon --show如果需要停用特定Swap文件sudo swapoff /path/to/swapfile5.2 调整现有Swap文件大小要调整Swap文件大小需要先停用它停用Swap文件sudo swapoff /swap/swapfile删除旧文件并创建新大小的文件sudo rm /swap/swapfile sudo dd if/dev/zero of/swap/swapfile bs1G count32 statusprogress重新设置并启用sudo chmod 600 /swap/swapfile sudo mkswap /swap/swapfile sudo swapon /swap/swapfile5.3 监控Swap使用情况定期监控Swap使用情况有助于发现潜在的内存问题实时监控watch -n 1 free -h生成Swap使用报告vmstat -s | grep -i swap检查哪些进程在使用Swapsudo smem -s swap -r6. 安全注意事项与最佳实践虽然Swap文件非常有用但也需要注意以下安全事项加密Swap包含敏感数据的系统应考虑加密Swapsudo apt install cryptsetup sudo cryptsetup luksFormat /swap/swapfile定期检查监控Swap使用模式异常的高使用率可能表明内存不足性能平衡不要过度依赖Swap物理内存才是性能关键备份重要数据在进行系统级修改前建议备份重要文件对于大多数现代桌面和工作站用户遵循这些指导原则配置Swap空间可以显著改善系统在高负载下的稳定性避免因内存不足导致的性能下降或系统崩溃。

相关文章:

别再让Ubuntu卡成PPT!手把手教你用swapfile把交换空间从1G扩容到64G(附权限修复)

Ubuntu系统Swap空间扩容实战:从1G到64G的完整解决方案当你在Ubuntu上运行内存密集型任务时,是否遇到过系统突然变得异常缓慢,甚至完全卡死的情况?很多拥有大内存(如32GB或更高)的用户可能会惊讶地发现&…...

别再只认ldd了!盘点5种查看Linux程序动态库依赖的方法(含静态/交叉编译场景)

超越ldd:Linux二进制依赖分析的5种专业方法解析在Linux系统管理和开发中,遇到"不是动态可执行文件"的错误提示时,很多工程师的第一反应是困惑——明明是可执行文件,为什么ldd无法识别?这个问题背后隐藏着Lin…...

【程序源代码】答题微信小程序(含源码)

关键字:答题,小程序,OCR, 题目识别,题库,练习,错题集,微信小程序,Vue项目名称:答题微信小程序答题小程序是面向学生群体打造的轻量化在线答题学习平台,基于微…...

交通顶刊TR Part C 2026年6月论文导读(下)

一期刊简介Transportation Research Part C (TR-C): Emerging Technologies 是交通领域顶刊,由 Elsevier 出版,中科院与 JCR 均为 1 区,近年影响因子约8–9.6。该期刊以交通系统为核心,聚焦 AI、大数据、运筹学等新兴技术对交通规…...

AI应用开发岗面经

1、请先做一下自我介绍。2、你的毕设作品,从产品需求设计到后续开发全流程,都是你一个人独立完成的吗?3、你为什么会选择做这个毕设项目?4、你在做这个项目的过程中,遇到的比较大的挑战是什么?5、你为什么会…...

选型必看!国产RT-Thread才是商用量产最优解

做嵌入式项目选型,很多工程师总会纠结:Zephyr、FreeRTOS、uC/OS、RT-Thread到底怎么选?不少测评一味堆砌极限跑分数据,盲目吹捧海外系统的参数优势,却忽略了国内企业最看重的国产化合规、开发效率、落地量产、售后保障…...

Titanic数据集分析避坑指南:新手常犯的3个错误及如何修正

Titanic数据集分析避坑指南:新手常犯的3个错误及如何修正泰坦尼克号数据集是机器学习领域的"Hello World",但看似简单的数据背后藏着无数陷阱。许多初学者在Kaggle等平台提交分析时,常常陷入三个典型误区:用均值粗暴填充…...

VMware升级后Ubuntu 22.04虚拟机网卡‘消失’?别慌,这6个命令帮你一键找回(附排查思路)

VMware升级后Ubuntu 22.04虚拟机网卡异常修复指南当你满怀期待地将VMware Workstation从15版升级到17版,准备体验新功能时,突然发现原本运行良好的Ubuntu 22.04虚拟机无法联网了——ifconfig只显示lo回环接口,网络设置里空空如也。这种"…...

MacBook锁屏别慌!手把手教你用恢复模式+Apple ID重置开机密码(保姆级图文)

MacBook锁屏急救指南:3种安全解锁方案详解刚泡好的咖啡还在冒热气,手指悬在键盘上方却突然僵住——那个每天输入几十次的密码,此刻竟怎么也想不起来了。MacBook屏幕上冰冷的"密码错误"提示像一堵墙,将你与所有工作资料、…...

不止是搜索!Listary隐藏玩法大揭秘:网页传文件、快速启动器、资源管理器增强

Listary进阶指南:解锁Windows效率中枢的隐藏玩法双击Ctrl键调出搜索框——这可能是大多数Listary用户对这个工具的全部认知。但如果你只把它当作一个文件搜索工具,那就像用瑞士军刀只开瓶盖一样暴殄天物。经过三年深度使用和上百次工作流优化&#xff0c…...

别再乱装驱动了!Win10/Win11频繁蓝屏DPC_WATCHDOG_VIOLATION,用WinDBG揪出真凶(保姆级排查流程)

彻底解决Win10/Win11蓝屏噩梦:DPC_WATCHDOG_VIOLATION实战排查指南每次看到那个蓝色屏幕突然出现,心跳都会漏掉一拍——特别是当重要文件还没来得及保存的时候。DPC_WATCHDOG_VIOLATION(错误代码133)堪称Windows系统最令人头疼的蓝…...

别再只会用P值了!用Python的Scipy库实战t检验(附完整代码与结果解读)

用Python玩转t检验:从理论到代码的实战指南当你面对两组数据,想知道它们的均值是否存在显著差异时,t检验是最常用的统计工具之一。但很多数据分析师和机器学习实践者常常陷入"理论懂,代码不会写"的困境。本文将带你用Py…...

安卓高版本APP抓包实战:破解证书校验与NetworkSecurityConfig

1. 为什么高版本安卓APP抓包越来越像“拆弹”——从系统证书机制说起你有没有试过,把BurpSuite配好代理、雷电模拟器9开起来、APP一启动就报“网络连接异常”?或者更魔幻的:APP能打开,但所有接口请求在Burp里压根不出现&#xff0…...

Drupal YAML反序列化RCE漏洞CVE-2017-6920深度解析

1. 这不是“又一个RCE”,而是一次对Drupal架构信任边界的彻底重写2017年3月,Drupal官方发布安全通告,编号CVE-2017-6920,定级为Critical(严重),CVSS评分高达9.8。当时我正在给一家省级政务平台做…...

安卓反调试绕过实战:Frida分层Hook与动态修复指南

1. 为什么“绕过反调试”不是技术炫技,而是逆向分析的生存底线在安卓应用安全分析现场,我见过太多人卡在第一关:刚用adb shell连上设备,frida -U -f com.example.app --no-pause一敲下去,目标App闪退,Logca…...

基于PSO的多目标优化匿名化模型MO-OBAM:平衡隐私保护与数据效用的实战指南

1. 项目概述:当数据共享遇上隐私红线,我们如何破局?在数据驱动的时代,无论是医疗研究中的患者电子病历、金融风控中的信用记录,还是商业分析中的用户行为数据,其共享与分析都蕴含着巨大的价值。然而&#x…...

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数

UE5 StateTree数据通信详解:告别黑板,在Task与Evaluator间高效传递参数当你在UE5中构建一个拥有复杂行为的AI角色时,数据如何在各个行为模块间高效传递是一个无法回避的核心问题。传统的"黑板"系统虽然广为人知,但在Sta…...

告别美术字烦恼!Unity UGUI自定义图片字体保姆级教程(附完整工具代码)

Unity UGUI自定义图片字体全流程实战指南在游戏UI开发中,标准字体往往无法满足美术设计的个性化需求。当遇到特殊风格的数字、符号或文字时,传统解决方案要么依赖美术逐张制作图片,要么忍受字体版权和风格限制。本文将彻底解决这个痛点——通…...

告别美术字烦恼!Unity UGUI自定义字体工具一键打包全流程(附避坑指南)

告别美术字烦恼!Unity UGUI自定义字体工具一键打包全流程(附避坑指南)在游戏UI开发中,美术字体往往是提升视觉表现力的关键元素。然而,从设计稿到最终在Unity中完美呈现,这条路上布满了各种"坑"&…...

告别打包焦虑:UE5 Windows与安卓打包速度优化与稳定性提升全攻略

告别打包焦虑:UE5 Windows与安卓打包速度优化与稳定性提升全攻略在虚幻引擎5(UE5)开发流程中,打包环节往往是开发者体验的分水岭——顺畅的打包过程能保持创作心流,而频繁的报错和漫长等待则会严重消耗开发热情。本文将…...

嵌入式开发中volatile关键字的原理与应用

1. 理解volatile关键字的核心作用在嵌入式C语言开发中,volatile关键字是解决编译器优化导致意外行为的关键工具。当编译器对代码进行优化时,它会假设变量的值只在显式赋值时改变。然而在嵌入式系统中,许多变量的值可能被硬件、中断或其他线程…...

Unity 2020.3.3f1c1 + MySQL:手把手教你搞定餐厅经营游戏的登录注册与房间联机(附完整源码)

Unity餐厅经营游戏开发实战:从登录注册到联机房间的完整架构解析在独立游戏开发领域,餐厅经营类游戏因其轻松愉快的玩法和社交属性,始终保持着稳定的市场需求。本文将深入探讨如何基于Unity 2020.3.3f1c1构建一个完整的餐厅经营游戏框架&…...

从HaGRID到自定义:手部关键点数据集标注、转换与可视化实战(Python代码)

从HaGRID到自定义:手部关键点数据集标注、转换与可视化实战(Python代码)在计算机视觉领域,手部关键点检测正逐渐成为人机交互、虚拟现实和手势识别等应用的核心技术。不同于简单的目标检测任务,手部关键点检测需要精确…...

Unity网络游戏开发避坑指南:手把手教你用C#和MySQL复刻餐厅经营联机对战

Unity网络游戏开发实战:餐厅经营联机对战的技术实现与优化1. 从单机到联机:架构设计的核心转变餐厅经营游戏从单机转向联机对战,首要考虑的是如何重构游戏架构。传统单机游戏的所有逻辑都在本地运行,而联机游戏需要将关键逻辑迁移…...

别再只把PCA当降维工具了!用Python+Sklearn实战服装标准与消费支出分析

解锁PCA的隐藏技能:用Python实战服装标准与消费支出分析当我们谈论主成分分析(PCA)时,大多数人首先想到的是"降维"——这个标签如此深入人心,以至于我们常常忽略了PCA作为"数据解释器"和"可视…...

新手也能搞定的Unity 2D像素风游戏:用免费素材包快速搭建你的第一个横版关卡(附JUNGLE RULES风格参考)

零基础打造Unity 2D像素风横版游戏:从素材获取到完整关卡实战指南像素风格游戏近年来持续走红,其独特的复古魅力与相对较低的制作门槛,使其成为独立开发者和新手的理想选择。Unity作为当下最受欢迎的游戏引擎之一,提供了完善的2D开…...

不止是选择器:用Unity Dropdown组件打造一个可交互的游戏设置菜单(附完整C#脚本)

不止是选择器:用Unity Dropdown组件打造一个可交互的游戏设置菜单在游戏开发中,设置菜单是玩家与游戏交互的重要桥梁。一个设计精良的设置菜单不仅能提升用户体验,还能让玩家根据个人偏好调整游戏参数。Unity的Dropdown组件常被简单用作选择器…...

ARM SVE指令集:UQDECD/UQINCD饱和运算详解

1. ARM SVE指令集概述在当今计算密集型应用领域,向量处理技术已成为提升性能的关键手段。作为ARMv8架构的重要扩展,可扩展向量扩展(Scalable Vector Extension, SVE)突破了传统SIMD指令集的固定宽度限制,为高性能计算和机器学习工作负载提供了…...

Unity UI实战:Input Field输入框从入门到精通,搞定用户交互与数据获取

Unity UI实战:Input Field输入框从入门到精通,搞定用户交互与数据获取在游戏和应用开发中,用户输入是不可或缺的交互环节。无论是简单的登录界面、复杂的设置面板,还是实时聊天系统,Input Field都是连接用户与程序的关…...

Mac上高效调试HTTPS流量:Charles抓包配置与SSL解密实战

1. 为什么Mac用户绕不开Charles——它不是“又一个抓包工具”,而是调试链路的中枢神经在Mac上做前端联调、App接口验证、小程序网络行为分析,甚至排查第三方SDK异常请求时,我见过太多人卡在第一步:看不到真实发出去的请求。有人用…...