6

我在 Ubuntu 12.10 AMD64 上运行 64 位 R。我最近为我的系统添加了额外的 8GB 内存,总共 12GB。但是我注意到,只要(单个 R 会话的)内存使用量超过 4GB,R 就会给我一个错误。当我并行运行 6 个 R 会话时,每个会话消耗约 3 GB 的内存,我的总内存使用量增加到 11 GB。但是单个 R 会话不能使用超过 4GB!我需要在一个大型数据集上训练一个随机森林模型,并且我需要 > 4GB 的单个 R 会话。

更新:

R> sessionInfo()

R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods  
[7] base     

loaded via a namespace (and not attached):
[1] tools_2.15.1

更新 2:

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 92787
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 92787
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
4

2 回答 2

1

我怀疑您有流程限制,将任何给定流程限制为 4G。

尝试ulimit -a查找与内存相关的任何非无限值。

此外,检查文件/etc/security/limits.conf和其中的任何文件以/etc/security/limits.d/获取有关内存限制的条目。

特别是这两个:

data
as

请参阅man limits.confPAM 可以强制执行的配额。

于 2013-03-24T17:14:23.480 回答
0

在 Windows 操作系统中,默认情况下,R 安装 32 位和 64 位版本。虽然,看起来 Linux 没有。如果您使用的是 RStudio 之类的 IDE,如果已安装,则它指向 32 位版本。您可以在 Rstudio 设置中更改此设置。

于 2013-03-24T16:45:43.247 回答