每次启动时交换优先级设置为 -1

axo*_*otl 6 fstab swap memory-usage ram free

我有一个大小为 7.9 GB 的交换分区。当我使用命令时free,它显示:

NAME      TYPE      SIZE USED PRIO
/dev/sda7 partition 7.9G   0B   -1
Run Code Online (Sandbox Code Playgroud)

交换分区未被使用,其优先级设置为负值(这可能是为什么)。

我尝试编辑/etc/fstab以将优先级设置为某个正整数,例如 100。但这不会影响当前实例。因此,在重新启动后,我希望它使用新配置,但它会将优先级重置为原始配置。fstab 文件仍显示 p=100,但实际上并非如此。

我尝试关闭swapoff,在同一个分区上再次进行swap和swapon,但没有用。

我该怎么做才能让系统有效地使用swap?

Din*_*yan 4

请按照我的指示进行操作,我已经使用并取得了成功的结果。

  1. 打开 PC 电源并登录桌面。
  2. 打开终端并获得 root 权限。( sudo -s)
  3. 运行fdisk -l以列出磁盘分区表。记下您的交换分区。这是你的 /dev/sda7
  4. 运行blkid /dev/sda7以获取分区的块 ID。复制 UUID。输出是这样的

    /dev/sda7: UUID="918d334c-ca76-4e6a-b950-d44b4671dbc5" TYPE="swap" PARTUUID="7b892b40-0b"
    
    Run Code Online (Sandbox Code Playgroud)
  5. 运行swapoff -a以关闭交换分区。

  6. 跑步vim /etc/fstab。在那里,注释您当前的 fstab 条目(使用 #)并粘贴以下内容并使用您的 UUID 确保它:

    UUID="918d334c-ca76-4e6a-b950-d44b4671dbc5"    none    swap    sw,pri=100    0    0 :wq 
    
    Run Code Online (Sandbox Code Playgroud)
  7. 保存并退出

  8. 运行swapon -a以启用交换分区
  9. 运行swapon -s以显示交换摘要
  10. 重新启动电脑并再次确保交换分区已启用且具有相同的优先级。

  • 尾随`:wq`。真有这种事,哈哈 (8认同)

Jam*_*at7 1

交换分区没有被使用...我该怎么做才能让系统有效地使用交换分区?

命令free输出显示您已设置并正在使用 7.9GB 交换分区。该命令执行时占用的空间量free为 0 字节。也就是说,您当时运行的程序适合可用内存,不需要将任何内容调出到交换空间。这是一个理想的条件——当没有发生交换时,您的系统将比发生交换时运行得更快。

关于优先级,-1 是一个不错的数字。如果只分配了一个交换设备,一般来说其优先级没有区别;当只有一个交换单元时,这就是将用于交换的单元。

如果您有多个交换单元并且想要先使用一个,请为较早man swapon使用的单元指定较高的优先级编号(如上一个答案和 中所述),为稍后使用的单元指定较低的优先级编号,或者仅在/etc/fstab列表中文件中的设备按顺序排列。较早列出的意思是较早用于没有优先级编号的条目。