尽管内存足够,但仍出现内存不足错误

尽管内存足够,但仍出现内存不足错误

我正在尝试使用一个名为卡莫科使用 CLI。当我运行我需要的命令之一时,我得到

[LOG] Mon May 11 20:47:31 2020 - Your computer ran out of memory! This analysis needs to be done on a machine with more memory (16Gb+ recommended)
Unable to allocate 2.40 GiB for an array with shape (322643503,) and data type float64

我们看到数组大小为 2.40 GiB。因此我运行了free -mh,结果显示:

              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       2.6Gi       4.3Gi       299Mi       782Mi       4.5Gi
Swap:         2.0Gi       1.8Gi       210Mi

看起来内存足够,为什么会出现这个错误?有没有什么办法可以解决这个问题?

答案1

您会收到分配失败的错误消息。在此之前,您可能已经成功分配了很多次,从而耗尽了您的 RAM。显示错误消息后,内存将被释放,因此您会看到大量可用内存。

我不知道您实际上需要多少内存或性能,但您可以尝试添加一些交换空间。这将在您重新启动之前添加 2G 的交换空间。

准备好交换空间:

$ sudo fallocate -l 2G /extra.swap
$ sudo chmod 0600 /extra.swap
$ sudo mkswap /extra.swap

现在检查你的记忆

$ free -mh

现在将交换空间添加到您的系统

$ sudo swapon /extra.swap

如果您再次检查可用内存,您应该会看到交换内存的增加。

$ df -h

如果您想要禁用额外的交换空间,例如删除文件,您可以执行以下操作:

$ sudo swapoff /extra.swap

相关内容