R中相同数据的相同操作的不可预测的内存使用

石匠

我遇到了一个问题,即 R 函数(NbCluster)使 R 崩溃,但在使用相同数据的不同运行的不同点。根据 journalctl,崩溃都是因为内存问题。例如:

Sep 04 02:00:56 Q35 kernel: [   7608]  1000  7608 11071962 10836497 87408640        0             0 rsession
Sep 04 02:00:56 Q35 kernel: Out of memory: Kill process 7608 (rsession) score 655 or sacrifice child
Sep 04 02:00:56 Q35 kernel: Killed process 7608 (rsession) total-vm:44287848kB, anon-rss:43345988kB, file-rss:0kB, shmem-rss:0kB
Sep 04 02:00:56 Q35 kernel: oom_reaper: reaped process 7608 (rsession), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB

我一直在测试我的代码以找出导致内存错误的行,结果发现它会有所不同,即使使用相同的数据也是如此。除了想要解决它之外,我对为什么这是一个间歇性问题感到困惑。如果一个对象太大而无法放入内存,那么在给定相同资源的情况下,每次运行它都会出现问题,对吗?

其他进程使用的内存量在运行之间没有显着差异,而且我总是从一个干净的环境开始。当我查看时,top我总是有空闲的内存(尽管我很少查看崩溃的确切时刻)。我尝试通过删除不需要的对象和定期垃圾收集来减少内存负载,但这并没有明显的效果。

例如,在运行 NbClust 时,有时在运行时发生崩溃,有时length(eigen(TT)$value)在调用hclust. 有时它不会崩溃并以相对优雅的“无法分配向量大小”退出除了关于减少内存负载的任何建议之外,我想知道为什么我有时会耗尽内存但其他时候却没有。

编辑:更改hclustto 的所有用途后hclust.vector,我在层次聚类步骤中不再发生崩溃。然而,在不同的地方仍然会发生崩溃(通常在调用 时eigen())。如果我能够可靠地预测(在一定的误差范围内)我的代码的每一行将使用多少内存,那就太好了。

已退出--匿名-慕斯

现代内存管理远没有你想象的那么确定。

如果您想要更多可重现的结果,请确保摆脱任何垃圾收集、任何并行性(特别是与您的程序并行运行的垃圾收集!)并确保该进程在内存中的限制值远小于您的空闲值系统内存。

内核 OOM 杀手是当内核过度使用内存(您可能想了解这意味着什么)、完全没有交换存储并且无法履行其承诺时的最后手段。

内核可以分配在第一次访问之前不需要存在的内存。因此,OOM 杀手不会在分配时发生,而是在实际使用页面时发生。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XGBoost中的相同预测

来自分类Dev

相同的来宾操作系统,Virtualbox和VMWare Workstation中的内存使用不同

来自分类Dev

R 中的 Keras:高精度模型预测相同的输出类别

来自分类Dev

集群中的复制数据是否会在每个系统中使用相同的内存空间?

来自分类Dev

R:训练数据和测试数据具有相同的预测

来自分类Dev

在R数据框中显示相同的列

来自分类Dev

Python类使用相同的内存

来自分类Dev

R-对许多数据集执行相同的操作

来自分类Dev

向数据框中的n行添加一个ID,然后使用R对另一个ID执行相同的操作

来自分类Dev

使用R中具有相同值的外部数据框对数据框进行排序

来自分类Dev

AKKA是否尝试在内存中执行与磁盘上的Azure Service Bus Queue相同的操作?

来自分类Dev

Keras数据生成器预测相同数量的值

来自分类Dev

Keras Val_acc 很好,但对相同数据的预测很差

来自分类Dev

如何使用值作为列名扩展数据框并填充R中相同单元格的计数?

来自分类Dev

在R中的ggplot中使用相同的列名称对数据帧进行子集和绘图

来自分类Dev

使用收集整理R-属性中的数据集不完全相同

来自分类Dev

使用 R Studio 进行聚类分析中相同数据集的不同结果?

来自分类Dev

在R中的数据帧中合并几乎相同的行

来自分类Dev

在R中绘制预测数据

来自分类Dev

substr是否使用相同的基础内存?

来自分类Dev

使用相同的内存模块有什么好处?

来自分类Dev

R中多个数据帧具有相同功能

来自分类Dev

在R的数据框中收集相同年份?

来自分类Dev

对R中的n个数据帧重复相同的过程

来自分类Dev

多个数据框中的多个相同列-R

来自分类Dev

R检查数据帧的多行中是否出现相同的数字

来自分类Dev

让 R 中某个时间段内的数据值相同

来自分类Dev

如何使r中列名相同的数据框的rowMeans

来自分类Dev

R - 在数据框的两列中删除相同的名称

Related 相关文章

  1. 1

    XGBoost中的相同预测

  2. 2

    相同的来宾操作系统,Virtualbox和VMWare Workstation中的内存使用不同

  3. 3

    R 中的 Keras:高精度模型预测相同的输出类别

  4. 4

    集群中的复制数据是否会在每个系统中使用相同的内存空间?

  5. 5

    R:训练数据和测试数据具有相同的预测

  6. 6

    在R数据框中显示相同的列

  7. 7

    Python类使用相同的内存

  8. 8

    R-对许多数据集执行相同的操作

  9. 9

    向数据框中的n行添加一个ID,然后使用R对另一个ID执行相同的操作

  10. 10

    使用R中具有相同值的外部数据框对数据框进行排序

  11. 11

    AKKA是否尝试在内存中执行与磁盘上的Azure Service Bus Queue相同的操作?

  12. 12

    Keras数据生成器预测相同数量的值

  13. 13

    Keras Val_acc 很好,但对相同数据的预测很差

  14. 14

    如何使用值作为列名扩展数据框并填充R中相同单元格的计数?

  15. 15

    在R中的ggplot中使用相同的列名称对数据帧进行子集和绘图

  16. 16

    使用收集整理R-属性中的数据集不完全相同

  17. 17

    使用 R Studio 进行聚类分析中相同数据集的不同结果?

  18. 18

    在R中的数据帧中合并几乎相同的行

  19. 19

    在R中绘制预测数据

  20. 20

    substr是否使用相同的基础内存?

  21. 21

    使用相同的内存模块有什么好处?

  22. 22

    R中多个数据帧具有相同功能

  23. 23

    在R的数据框中收集相同年份?

  24. 24

    对R中的n个数据帧重复相同的过程

  25. 25

    多个数据框中的多个相同列-R

  26. 26

    R检查数据帧的多行中是否出现相同的数字

  27. 27

    让 R 中某个时间段内的数据值相同

  28. 28

    如何使r中列名相同的数据框的rowMeans

  29. 29

    R - 在数据框的两列中删除相同的名称

热门标签

归档