当我在 live USB 上尝试 Peppermint OS 时,为什么交换区如此大? (USB 的大小小于 Swap 的大小)

当我在 live USB 上尝试 Peppermint OS 时,为什么交换区如此大? (USB 的大小小于 Swap 的大小)

我在 live USB 上尝试 Peppermint OS(基于 Lubuntu 的发行版)。我通过命令检查内存

free -h

结果是

peppermint@peppermint ~ $ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.8G        1.0G        1.0G        866M        1.8G        1.8G
Swap:          5.7G         51M        5.7G

我的usb是4G的,我的内存是4G的。

为什么swap是5.7G?在其他基于 ubuntu 的发行版中是否会发生这种情况?

据我了解,在 live USB 上尝试 ubuntu 发行版不会在硬盘上创建交换,所以我考虑了 3 种情况:

  1. 我之前已经创建了4G的swap(创建双启动时),并且使用了这个swap,但是这里的swap是5.7G

  2. 在usb上创建了另一个swap,但我的usb只有4G;那为什么swap是5.7G呢?

  3. 在usb上创建了1.7G的swap,5.7G是两个swap合并的结果。但我检查我的USB有2.5G空闲,其中的linux iso约为1.3G,所以我的USB上不能有1.7G的交换

正如 sourcejedi 所建议的,结果如下cat /proc/swaps

peppermint@peppermint ~ $ cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/sda5               partition   3998716 0      -2
/dev/zram0              partition   1006892 26320   5
/dev/zram1              partition   1006892 26044   5

答案1

  1. 因此它已检测到您的 4GB(十进制)交换分区,并自动启用它。我认为这种情况相当普遍。它可能来自常见的 Ubuntu 代码。

  2. 它还使用 2 x 1GBzram交换空间。交换到的数据zram被压缩并存储在 RAM 中。这对于低内存系统特别有用。 Android 可以使用类似(相同?)的方法,低内存系统上的 Windows 10 也是如此。

这是 Peppermint 包含 Ubuntu 软件包的结果zram-config。据我所知,原来的Ubuntu Desktopzram-config默认是不安装的。

您可以在 中看到代码/usr/bin/init-zram-swapping。目前,它为每个 CPU 创建一个 zram 设备(用于并行压缩或解压缩)。

# Calculate memory to use for zram (1/2 of ram)
totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/  *.*//'`
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

# initialize the devices
for i in $(seq ${NRDEVICES}); do
  DEVNUMBER=$((i - 1))
  echo $mem > /sys/block/zram${DEVNUMBER}/disksize
  mkswap /dev/zram${DEVNUMBER}
  swapon -p 5 /dev/zram${DEVNUMBER}
done

相关内容