LINUX 解决系统卡死:扩大内存交换分区

        最近电脑总是卡住,让我很是苦恼。运行程序时发现可能是内存占满之后导致界面卡住。下面是在我16G内存的电脑上折腾的过程与结果:

  • 查看当前的交换内存大小free -m(单位:-m选项表示以兆字节(MB)为单位显示内存使用量)
              total        used        free      shared  buff/cache   available
Mem:           *         *         *         *         *        *
Swap:          2047           0        2047
  • 在Linux系统中,/proc/swaps文件是一个虚拟文件,用于显示当前系统上的交换分区(swap partition)和交换文件(swap file)的信息。你可以使用以下命令查看/proc/swaps文件的内容:

  • cat /proc/swaps 注意,/proc目录下的文件和文件夹都是虚拟文件系统,它们提供了对内核和系统信息的访问。因此,/proc/swaps文件实际上并不是一个真正的文件,而是通过内核动态生成的。

  • 该文件的内容包含了每个交换设备的详细信息,每行对应一个交换设备。每行的字段如下: Filename:交换设备的路径或文件名。Type:交换设备的类型,可以是"partition"(分区)或"file"(文件)。Size:交换设备的大小。Used:已使用的交换空间大小。Priority:交换设备的优先级。如果系统没有启用交换分区或交换文件,则/proc/swaps文件将为空。

  • 关闭交换分区 sudo swapoff 上一步输出的Filename

  • 创建一个swapfile文件 sudo dd if=/dev/zero of=swapfile bs=1024 count=10000000 ,其大小为 bs x count = 1024 × 10000000 = 10G

这是一个使用 dd 命令创建交换文件(swap file)的命令。解释如下:
dd: 是一个用于复制和转换文件的命令。
if=/dev/zero: if 表示输入文件,这里指定为 /dev/zero,它是一个特殊的设备文件,读取该文件会返回无限个零字节。
of=swapfile: of 表示输出文件,这里指定为 swapfile,即要创建的交换文件的名称。
bs=1024: bs 表示块大小(block size),这里设置为 1024 字节,表示每次读取和写入的数据块大小为 1024 字节。
count=10000000: count 表示要复制的块数,这里设置为 10000000,表示要复制 10000000 个块,即总共创建一个大小为 10GB 的交换文件。
综上所述,该命令的作用是以超级用户权限创建一个名为 swapfile 的交换文件,文件大小为 10GB。交换文件在某些情况下可以用作虚拟内存的扩展,用于处理系统内存不足的情况。
  • sudo chmod 600 ./swapfile

  • sudo mkswap -f ./swapfile

  • sudo swapon ./swapfile

  • 经过以上的操作,已经可以正常使用swap内存了,但是每次重启电脑,之前的配置都会消失

  • 可通过修改 /etc/fstab进行持久化

CG

        感觉这操作有点像deepspeed的zero offload,不过还是挺管用的,感觉比减小make时的线程数靠谱。对于同一个问题,还是要多找解决方案的好。

  • 参考:https://masterhu.blog.csdn.net/article/details/104856865

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++面试宝典第11题:两数之和

题目 给定一个整数数组和一个目标值,请在该数组中找出和为目标值的那两个整数,并返回他们的数组下标,要求时间复杂度为O(n)。可以假设每种输入只会对应一个答案,注意:不能重复利用这个数组中同样的元素。 解析 这道题主要考察应聘者对算法时间复杂度和空间复杂度的理解,时…

【JVM篇】Java是如何实现平台无关的?

Java是如何实现平台无关的? ✔️什么是平台无关性✔️平台无关性的实现✔️Java虚拟机✔️字节码✔️Java语言规范 ✔️扩展知识仓✔️平台无关性的好处✔️ 有哪些语言实现了平台无关?✔️Java中基本数据类型的大小都是确定的吗? ✔️什么是平台无关性 平台无关性就是一种语…

android 13 调整导航栏返回键和home键间距

定制android 13的圆形设备,底部导航栏的back , recent_app键都靠近两边导致只看到一个home键。 期望:调整back , recent_app 和home的间距,能让这个圆形屏幕的设备能按到back,recent_app按键 diff --git a/vendor/mediatek/prop…

(salutation称呼)Mr., Mrs., Miss, Ms., Mx.,Jr.,Sr.,II,III,IV 分别是什么意思

文章目录 前缀后缀 前缀 Mr.:先生 Mrs.:太太(已婚) Miss:小姐(未婚),但不严格,有的时候学生称呼女老师可以直接用这个词,不必管是否结婚。 Sir:也…

Net6 Core webApi发布到IIS

Net6 Core Api发布到IIS不同于webapi,依赖框架不同,配置也移至项目内Program.cs 一、发布到指定文件夹和IIS,不过注意IIS应用程序池选择的是 “无托管代码“ 在IIS管理器中点击浏览,访问接口路径报500.19,原因是所依赖…

机器学习之K-means聚类

概念 K-means是一种常用的机器学习算法,用于聚类分析。聚类是一种无监督学习方法,它试图将数据集中的样本划分为具有相似特征的组(簇)。K-means算法的目标是将数据集划分为K个簇,其中每个样本属于与其最近的簇中心。 以下是K-means算法的基本步骤: 选择簇的数量(K值)…

json转换(json与对象互转、json与list互转、JSONObject与Map互转)

目录 一、json与对象互转1、json转自定义对象2、json字符串转JSONObject 二、json与list互转1、list转JsonArray类型字符串2、JsonArray类型字符串转list 三、JSONObject与Map互转1、Map转JSONObj 一、json与对象互转 1、json转自定义对象 User user JSONUtil.toBean(jsonSt…

HTTP协议编程实战(一)实战一

http使用在应用层,http是单次连接,一次只能发送一个请求。http是一个无状态协议,他不会保存客户端的状态信息,从而提高运行效率,保持比较快的响应速度。http是一种面向对象的协议,允许传送任意数据类型的对…

【Linux 程序】1. 程序构建

文章目录 【 1. 配置 】【 2. 编译 】makefile编写的要点makefile中的全局自变量CMake编译依赖的库g编译 【 3. 安装 】 一般源代码提供的程序安装需要通过配置、编译、安装三个步骤; 配置。检查当前环境是否满足要安装软件的依赖关系,以及设置程序安装所…

2024年医院设备维修培训安排

在你还考虑该不该干的时候别人已经走好远了 小时候觉得忘带作业是天大的事,高中的时候,觉得考不上大学是天大的事,恋爱的时候,觉得跟喜欢的人分开是天大的事,到现在回头看看,那些难以跨过的山,…

1200PLC连接分布式IO组态编程应用

SMART PLC作为S7-1200PLC的智能IO从站设备组态和编程应用详细介绍请参考下面链接文章: https://rxxw-control.blog.csdn.net/article/details/130257474https://rxxw-control.blog.csdn.net/article/details/130257474这篇博客我们介绍S7-1200PLC和分布式IO连接组…

【C语言深度剖析——第一节(关键字1)】《C语言深度解剖》+蛋哥分析+个人理解

你未曾见过火光,难怪甘愿漂泊寒夜 本文由睡觉待开机原创,未经允许不得转载。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言,共同进步! 首先简单介绍一下《C语言深度解剖》: 全书特点&am…

BUUCTF Reverse/[2019红帽杯]Snake

BUUCTF Reverse/[2019红帽杯]Snake 下载解压缩后得到可执行文件,而且有一个unity的应用程序,应该是用unity编写的游戏 打开是一个贪吃蛇游戏 用.NET Reflector打开Assembly-CSharp.dll。(unity在打包后,会将所有的代码打进一个Ass…

交叉验证的种类和原理(sklearn.model_selection import *)

交叉验证的种类和原理 所有的来自https://scikit-learn.org/stable/modules/cross_validation.html#cross-validation-iterators并掺杂了自己的理解。 文章目录 前言一、基础知识1.1 交叉验证图形表示1.2 交叉验证主要类别 二、部分交叉验证函数(每类一个&#xff0…

K-【学习Diffusers 一】随机种子控制生成 加载自己的UNet

1 控制随机种子 generator torch.Generator("cuda").manual_seed(1024) # 1 导入torch,pipline import torch from diffusers import StableDiffusionPipeline from accelerate import Accelerator# 2 生成种子1024是宇航员种子 generator torch.Generator("…

设计模式Java向

设计原则: 开闭原则: 用例对象和提供抽象功能进行分割,用例不变,抽象功能被实现,用于不断的扩展,于是源代码不需要进行修改,只在原有基础上进行抽象功能的实现从而进行代码扩展。不变源于代码…

【C++入门(一)】:详解C++语言的发展及其重要性

🎥 屿小夏 : 个人主页 🔥个人专栏 : C入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 🌤️什么是C🌤️C的发展史🌤️C的重要性☁️语言的广泛度☁️C的领域⭐…

深入探讨在SpringBoot中分布式锁的实现与应用

当在Spring Boot 中使用分布式锁时,你可以借助各种库和技术来实现。其中,Redis 和 ZooKeeper 是两个常用的分布式锁实现工具。下面将展示如何在 Spring Boot 中使用这两种工具实现分布式锁。 Redis 分布式锁 优点: 简单易用: Re…

绝地求生:大逃杀,鼠标灵敏度设置教程及枪法练习技巧 鼠标灵敏度怎么设置

《绝地求生大逃杀》鼠标灵敏度怎么设置?作为一款FPS游戏,如何调整鼠标参数是大家急需掌握的,今天闲游盒带来“院长尼克”分享的《绝地求生大逃杀》鼠标灵敏度设置教程及枪法练习技巧,废话不多说,下面我们一起来看吧。 …

C语言——小细节和小知识7

一、逆序字符串 1、递归1 #include <stdio.h> #include <string.h>void ReverseArray(char *str) {char temp *str;//1int len (int)strlen(str);*str *(str len - 1);//2*(str len - 1) \0;//3if(strlen(str 1) > 2)//只要字符串还大于2&#xff0c;就…