将文件用作交换存储器(SWAP)

作者: Maikel Llamaret埃雷迪亚 发表在 古特.

很久以前, GNU / Linux的,只能使用单个交换内存分区,最大数量为 128 MB遭到Linus Torvalds核心批评者的批评。

幸运的是,今天没有这种限制,并且还可以使用所需的交换内存来满足任何系统的需求。

有时,在安装我们的系统后,我们发现自己需要增加内存 SWAP 这是我们在安装过程中配置的,可以通过增加用于这些目的的所选分区的大小来简单地完成。 但是...如果您不想触摸分区表怎么办?

什么是SWAP,它如何工作?

交换内存空间或 互换,即所谓的虚拟内存。 实际内存和虚拟内存之间的区别在于,虚拟内存使用硬盘空间而不是内存模块。

当实际内存用完时,系统会将其部分内容直接复制到此交换内存空间,以执行其他任务。

使用SWAP的优势在于,当实际内存用完并需要执行某个过程时,可以提供所需的额外内存。 缺点是,由于使用了硬盘上的空间,因此硬盘的使用速度较慢。

使用文件作为交换内存。

此方法不需要更改硬盘分区表。 对于没有经验的用户,对于想要在更改其硬盘驱动器的分区表时避免冒险的用户,对于偶尔需要多于几次交换内存的用户而言,都是理想的选择。

考虑到交换文件可以放在硬盘上的任何目录中,因此执行命令 dd,指定将写入零 (如果= / dev /零) 创建文件 /交换(= = /交换),以1024字节为单位 (bs = 1024) 直到完成一定数量的字节(count = [数量乘以bs的值])。 下面的示例执行上述操作,直到完成524288000字节(除以1024等于512MB)为止:

要创建将用作SWAP的文件,我们将打开一个控制台并键入以下内容(以root身份):

dd if=/dev/zero of=/swap bs=1024 count=512000

以上步骤可能需要几秒钟,请耐心等待。 然后,要将创建的文件格式化为交换内存,我们将执行以下命令 交换,如下所示(始终以root身份):

mkswap /swap

您将在控制台上返回与以下内容相似的输出:

设置交换空间版本1,大小= 511996 KiB无标签,UUID = fed2aba5-77c6-4780-9a78-4ae5e19c506b

要激活分区并使其立即被操作系统使用,请执行以下命令 交换。 在我们的案例中,我们将在前面的步骤中创建并格式化SWAP的/ swap文件激活为交换内存分区:

swapon /swap

为了验证操作系统是否正在使用新的交换文件,我们将再次执行命令 免费 并且我们将看到新文件的容量已添加到初始SWAP内存中。

为了使该文件在下次系统启动时自动用作交换内存,我们将进行编辑  / etc / fstab文件 (使用nano,gedit,kate,kwrite,vim或您选择的纯文本编辑器),添加相应的行,如下所示,在其中放置了创建的交换文件的路径而不是设备:

我们打开文件

nano /etc/fstab

并且我们添加:

/swap         swap      swap     defaults               0 0

准备!!!!

我们可以重新启动系统,并测试使用新文件增加了交换内存 交换。 我们要做的只是在系统根目录中创建一个文件,对其进行格式化 SWAP 告诉我们 GNU / Linux的 将其与我们已经为此目的指定的分区一起用作交换内存。

简单的东西,但对我们许多人来说可能有用。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   hour

    笔记很棒。 只是现在,它让我想到了一件事,我可以同样地使用USB作为记忆棒吗? 如果您的设备有些陈旧,而获得的存储器却过于复杂或过于昂贵(计算机中的零件越旧,则价格越高),那么最好仅使用USB来扩展存储器就可以了。

    1.    奥罗斯

      是的,这非常好,这差不多就是我安装的zramswap的方式(我不喜欢分区沙拉,什么也不分开)。
      如果要使用usb作为交换,则只需为此格式化一个分区,然后将其添加到fstab,将/ swap更改为/ dev / sdb1(假设usb的路径为sdb1)。

      1.    sieg84

        您将对btrfs及其子卷感到满意

      2.    hour

        好吧,如果我正确理解了如何进行USB交换,但是我在考虑更多的事情,例如额外的RAM,因为USB将是物理内存,并且我不想等待它超过60%的内存开始使用USB。

        好吧,看到@nonamed的评论,在已经有更好的团队表现的时候,这样的解决方案的原因(只是作为贡献而不是团队战争的开始,并得到所有应有的尊重)不必要; 我可以想到3点:

        1号最明显的是在旧设备中使用它
        2号我还考虑的不是那么新的笔记本电脑,其容量为1gb或2gb,“减”了用于视频卡的内存
        第三名好吧,很明显吧? 因为它很有趣,而且因为它可以做到...呵呵呵! XD

        问候

        1.    k1000

          或者,如果您忘记创建SWAP,并且不想弄乱分区表,

        2.    嘉京

          您决定使用USB驱动器作为RAM吗?因为RAM的读写速度比USB所能支持的快得多,而且USB会在短时间使用后被破坏,这是无法做到的。最好将USB驱动器用作附加的SWAP

    2.    牵牛星

      是的,您可以在USB上创建一个交换分区,并使用sudo swapon / dev / sdX挂载它,然后可以在其中添加-s 60,使其具有比其他交换分区更高的优先级。 您也可以将其添加到fstab中,以使其自动挂载,或按照usb great上的本指南中的说明创建交换文件。

  2.   屠杀者

    出色的指南,虽然同时很困难,但我会同时练习,以解决一个用尽的问题。 现在,我在USB内存中复制相同的内容,以使从物理内存到交换内存的数据传输更快。

  3.   Elendilnarsil

    谢谢(你的)信息。 但是它产生一个问题,也许有些愚蠢:一旦创建了交换文件,就不能删除交换分区吗???

  4.   九分

    有时我想知道是否真的值得进行交换,我总是将其设置为0%,也许与内存有关,我有4Gb的ram,我猜越多的内存使用交换就没有多大意义了

    1.    丹尼尔·罗哈斯(Daniel Rojas)

      是的,这取决于您机器中的内存。 我也总是将其设置为0%,并且拥有4Gb的内存,我只给交换分区512mb

      1.    佩瑟罗

        在上一次安装中,我删除了交换。 即便如此,在拥有24GB RAM的情况下,我偶尔还是会看到少量的交换使用(几KB),即使有很多RAM未使用。 为什么? 我不知道

  5.   sieg84

    我必须在sabayon中执行此操作,我找不到导致它耗尽所有RAM和交换空间的原因。

  6.   Linux先生

    我总是会这样说,由于这些有趣的文章,FromLinix是排名第一的博客。 顺便说一句,我找到了Yoyo从他们拥有Elav的监狱扔出的钥匙,我想我会保留的。

    问候埃拉夫。

  7.   褐铁矿梅林

    非常有用的感谢。

  8.   正确

    更容易
    lvm lvresize /dev/vg_laptpop/vl_swap -L +4G
    如果您使用的是LVM clear(假设您想交换4gigas)

    1.    正确

      但是,那笔捐款是p%$一位母亲,以前从未知道过,我将为xDDDD保存多少格式

  9.   invisible15

    我有两个交换分区(每个硬盘一个),并且具有1GB的内存,我至少使用200mb和500mb的交换...

  10.   卡尔

    如果您有几个旧的USB笔式驱动器,则可以在突袭的0条N个USB设备上进行交换,从而加快交换性能,使其与被刺破的USB设备成比例,并且在可能的情况下,每个交换都可以在不同的根集线器中进行-我想! - 您只需要告知自己有关linux soft对raid的本机支持。
    有关更多信息的链接:
    http://www.kriptopolis.com/raid-1
    或更一般的搜索
    https://www.google.es/search?q=raid+por+soft+en+linux&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=fflb

    1.    卡尔

      我忘了说可以在分区级别进行突袭。 因此,如果USB峰值的大小不相同,则可以使分区的大小最小,而较大USB的剩余孔可以用于其他用途,也可以在文件或分区级别用于更多交换...不是可以用您描述的方法对多个交换文件进行突袭吗?

  11.   卡洛斯

    优秀的教程,我被要求增加现有的交换空间。 (和)

  12.   豪尔赫

    看起来不错我将尝试使用USB存储器。

  13.   吉约克斯

    太好了...它可以在Android手机上使用吗? 我已经有一个自定义内核,但是我不想对sd进行分区。 我想这必须工作

  14.   德鲁加斯

    很好的文章。

    关于Linux交换的另一个有趣的概念是swappiness:

    http://www.sysadmit.com/2016/10/linux-swap-y-swappiness.html

  15.   大卫·科尔曼

    你好,我的名字是大卫科尔曼,我 32 岁,来自俄亥俄州,我正在学习计算机编程和计算机科学,以便在 4 年内获得我的副学士学位!,
    在我为 2Gb 999Mb × 2 创建的交换 / swp 文件之后,我对应用程序(SWAP / 无根)APK 的问题很简单,本质上是如何将它存储在我的 Android 中的确切位置? 我正在使用 3Gb ram 32gb memeroy +32 gb SanDisk SD 也通过 boost mobile Unrooted 设备启动 Stylo 5,引导加载程序已解锁,SIM 卡已解锁!。 任何建议都非常感谢,欢迎 thx
    Urs SENCERLY, David Coleman 32 来自美国俄亥俄州.. ?