首页 > 系统相关 >如何增加虚拟内存?

如何增加虚拟内存?

时间:2024-06-09 09:43:40浏览次数:11  
标签:文件 命令 交换 dev 如何 内存 增加 swapon 虚拟内存

背景

在配置服务器以运行llama3-8b-instruct的过程中出现内存空间不足的提示:

"/usr/local/lib/python3.10/dist-packages/transformers/modeling_utils.py", line 508, in load_state_dict
    with safe_open(checkpoint_file, framework="pt") as f:
RuntimeError: unable to mmap 4976698672 bytes from file </mnt/vdb1/LLM/LLM-Research/Meta-Llama-3-8B-Instruct/model-00001-of-00004.safetensors>: Cannot allocate memory (12)

问题

如何增加虚拟内存以便满足llama3-8b-instruct的内存需求?

方案

命令行知识

dd命令

名称来源

  • dd命令的名称来自于“数据传输(Data Definition)”的缩写。尽管原始名称可能令人困惑,但实际上它被广泛用于复制和转换文件,而不仅仅是定义数据结构。

使用方式

dd是一个用于复制和转换文件的命令行工具。它的基本语法是

dd if=<input-file> of=<output-file> bs=<block-sezi> count=<number-of-blocks>

,其中if表示输入文件(input file),of表示输出文件(output file),bs表示块大小(block size),count表示块数(number of blocks)。

du 命令

du命令是在Linux系统上用来显示文件和目录磁盘使用情况的命令。du表示"disk usage"。使用du命令可以显示指定文件或目录所占用的磁盘空间大小。如果不指定文件或目录,du命令默认显示当前目录下所有文件和子目录的磁盘使用情况。

du命令的基本语法是:

du [OPTION]... [FILE]...

一些常用的选项包括:

  • -h : 以人类可读的格式显示文件和目录的磁盘使用情况,如KB, MB, GB等。
  • -s : 仅显示指定文件或目录的总磁盘使用情况,而不显示子目录的详细情况。
  • -c : 显示总计磁盘使用情况,包括所有指定文件或目录的总和。

例如,使用du -sh /home/user1命令可以显示/home/user1目录的总磁盘使用情况,并使用人类可读的格式显示大小。

mkswap 命令

mkswap命令的基本语法是:

mkswap [OPTION]... DEVICE

其中,DEVICE可以是一个分区设备文件(如/dev/sda1)或者一个普通文件。

一些常用的选项包括:

  • -c : 在创建交换区域时,进行检查并保留坏扇区的信息。
  • -f : 强制创建交换区域,即使设备似乎被正在使用。

例如,执行mkswap /dev/sdb1命令可以将/dev/sdb1分区设备文件初始化为交换分区。初始化完成后,可以使用swapon命令将其添加到系统中,使其生效。

swapon/swapoff 命令

swapon和swapoff是Linux系统中用于启用和禁用交换分区或交换文件的命令。

swapon命令用于将指定的交换分区或交换文件激活,使其可以用作系统内存的扩展。其基本语法为:

swapon [OPTION]... DEVICE

其中,DEVICE可以是一个分区设备文件(如/dev/sda1)或者一个普通文件。使用swapon命令激活交换分区后,系统将开始在交换空间中进行交换和页面置换,从而扩展可用的虚拟内存空间。

swapoff命令用于禁用指定的交换分区或交换文件,将其从系统中移除,使其不再用作虚拟内存。其基本语法为:

swapoff [OPTION]... DEVICE

类似于swapon,DEVICE可以是一个分区设备文件或者一个普通文件。

例如,执行swapon /dev/sdb1命令可以将/dev/sdb1分区设备文件激活为交换分区,而执行swapoff /dev/sdb1命令可以将其禁用,停止使用作为交换分区。

这两个命令在管理系统内存和交换空间时非常有用,可以根据系统需求动态地调整和管理交换空间的使用。

free -mh

free -mh命令用于在Linux系统中显示系统内存的使用情况,以及交换空间的情况。该命令会以人类可读的方式显示内存和交换空间的使用情况。

具体来说,-m选项表示以MB为单位显示内存使用情况。

-h选项则表示以人类可读的格式显示内存大小,使用类似"1.2G"的形式。

举个例子,执行free -mh命令会以人类可读的格式显示系统内存和交换空间的使用情况,包括总内存、已使用内存、剩余内存,以及交换空间的情况

磁盘知识

/dev/zero

/dev/zero是一个特殊的设备文件,在Unix和类Unix操作系统中用于提供无限的字节零流。读取/dev/zero将始终返回无限的零字节流,而写入/dev/zero则会将写入的数据丢弃,因为写入的数据都是字节零。

这个设备文件在很多情况下非常有用,例如当需要创建一个特定大小的空文件时,可以使用dd命令来将/dev/zero的数据写入到文件中,然后再截断文件到所需的大小。

过程

步骤一:创建空文件30G

dd if=/dev/zero of=/mnt/vdb1/ bs=1M count=30240

步骤二:根据空文件制作交换空间

mkswap /mnt/vdb1

步骤三:启用交换空间

swapon /mnt/vdb1

步骤四:查看交换空间

free -mh

评价

通过重新设置交换空间的大小,可以将硬盘的一部分用于扩展linux服务器的内存大小。从而为内存需求量过高的程序如llama的运行提供解决方案。

参考

标签:文件,命令,交换,dev,如何,内存,增加,swapon,虚拟内存
From: https://www.cnblogs.com/Laziko/p/18239266

相关文章

  • c# 编译器是如何帮我们实现方法重载 重写的
    在C#中,编译器通过以下方式帮助我们实现方法重载(Overloading)和方法重写(Overriding):方法重载(MethodOverloading)原理:编译时解析:C#编译器在编译阶段根据方法调用时提供的参数类型和数量来决定调用哪个重载版本。这个过程称为静态绑定或早期绑定,因为它发生在编译时期。签名匹配:编......
  • 代理IP纯净度如何测试?
    在网络应用和数据采集等领域,代理IP被广泛使用,而代理IP的纯净度则直接影响其性能和可用性。代理IP的纯净度主要涉及到代理IP在网络传输过程中的稳定性、匿名性和安全性。今天就带大家一起了解代理IP纯净度对用户的重要性。第一,保护用户的隐私在网络世界中,用户的真实身份和位......
  • [方法论]再论如何读书——对过去阅读的总结与对未来的要求
    前言陆爻齐在以前曾花心思读了不少关于“如何阅读”这个主题的书,有时对某条表示“顿悟”,然后做了几次就往在一边,什么笔记法啊,阅读法啊,大多十分的繁杂,连把整个流程走完一边都十分繁琐无聊,坚持下去于陆爻齐而言就是天方夜谭。在偶然瞥见某篇文章时,突然又有所顿悟,希望能把这个简单的......
  • 如何在CANoe中进行DoIP测试配置
    文章目录一、添加以太网网段信息二、诊断TP层配置1.配置诊断通道2.配置DoIP设置3.配置安全访问算子三、手动验证测试四、DoIP自动化脚本好好学习,多做笔记。以下是CANoe中DoIP的测试配置流程。一、添加以太网网段信息新建诊断DoIP测试网段,添加节点。在Simulation......
  • 茗鹤 | 模具如何在APS高级计划排程系统中,配置共模、互换镶件等有限约束条件?
    在高度依赖模具的生产环境中,模具管理与APS生产排程的有效整合是提升效率、确保订单交期的关键。以下是针对模具管理的几个核心策略,通过APS高级计划排程系统的辅助,实现产能优化与生产调度的智能化升级: 模具数量与产能预估模具的持有量直接映射为生产线的潜在产能。通过精确计......
  • 1. 如何通过SSH连接到vector rob
    #anki#vector#robot#digital-dream-labs ssh连接到vector机器人操作系统:将机器人放到充电底座上,连接电源,机器人自动启动,成功后,双击背部按钮打开蓝牙功能,打开后如下图:  打开vectorsetup控制台,这个可以自己本地运行,也可以直接访问公网上别人搭建的(https://wpsetup.......
  • Windows系统如何实现对高通ARM处理器的支持探讨
    近年来,随着移动设备和低功耗计算的兴起,ARM架构的处理器越来越受到关注。微软作为操作系统领域的巨头,推出了Windows系统对高通公司开发的ARM架构处理器的支持,这无疑引起了广泛的兴趣与讨论。那么,微软是如何实现对ARM处理器的支持的呢?是否采用了原生支持?是否由于增加了抽象层......
  • Steam游戏尝鲜攻略:如何安全高效试玩海量游戏
    在Steam这个全球最大的数字发行平台上,数以万计的游戏琳琅满目,让无数玩家心驰神往。但对于想要广泛探索不同游戏类型却又预算有限的玩家来说,如何在不违反规定的情况下,安全高效地试玩海量游戏成为了一大诉求。本文将为您揭秘几种策略,从Steam的家庭共享功能到充分利用免费资源,助您......
  • 关于LTspice如何导入第三方的.lib文件进行仿真
    转载自:https://bbs.eeworld.com.cn/thread-1265324-1-1.html1.在芯片官网找到对应的PSPICE模型下载后,将.lib文件移入到路径下的sub文件夹中。(例如C:\Users\\'username'\Documents\LTspiceXVII\lib\sub)2.将.lib文件拖入LTspice后右键单击.subckt后的芯片名称,选择CreatSymbol,即......
  • 如何恢复已删除的文件(简单5 分钟方法)
    本文介绍如何使用文件恢复程序恢复已删除的文件。其中包括与恢复已删除文件相关的提示。如何恢复已删除的文件从硬盘中恢复已删除的文件并不是一件疯狂的事情,但一旦意识到文件已被删除,尝试恢复会有所帮助。被删除的文件通常直到被其他文件覆盖后才真正被删除。请按照以下......