未使用交换

And*_*ann 12 swap ram 16.04

无论我的 RAM 有多满,我的交换都没有被使用。这是我的 swapon 输出:

NAME      TYPE       SIZE USED PRIO
/dev/dm-2 partition 31,9G 3,5M   -1
Run Code Online (Sandbox Code Playgroud)

PRIO -1 会不会有问题?

cat /proc/sys/vm/swappiness
60
Run Code Online (Sandbox Code Playgroud)

我的swappiness是60。

cat /proc/swaps
Filename             Type       Size        Used    Priority
/dev/dm-2            partition  33456124    3524    -1
Run Code Online (Sandbox Code Playgroud)

我有 32GB 的 RAM 和 32GB 的交换空间,但目前当我的内存运行时,我的系统只会永久锁定而不是开始交换。我能做些什么吗?

基本上我正在尝试运行一个会占用大约 30GB 内存的应用程序,而我的物理内存已经半满。当它启动并将数据加载到内存中时,一旦物理内存已满,我的系统就会冻结。不,它似乎不会在交换时锁定,因为即使过了一段时间也不会解冻。

And*_*ann 8

增加swappiness修复了它。交换已启用,但出于某种原因仅在内存完全满时才使用,而且不会很快。

  • 60 是默认值。如果交换不够,请以 5-10 为增量增加值并重新测试。如果您有大量内存并且想在交换之前全部使用它,请尝试一个非常低的值。0 表示系统永远不会交换,1 表示它只会交换以避免崩溃。但是根据我最初的问题,如果您的内存很快填满并且遇到锁定,有时使用更高的值可能是有意义的。 (4认同)

小智 6

就我而言,我安装了另一个 Ubuntu 测试实例并为其格式化了交换,因此交换设备的 UUID 在 fstab 中是旧的,我只是将其更改为当前并且可以正常工作。


Ari*_*jee 5

不要这么认为。首先检查cat /etc/fstab您的交换分区,然后尝试使用以下命令格式化交换文件系统

  1. sudo swapoff -a
  2. sudo /sbin/mkswap /dev/sd##
  3. sudo swapon -a