2013-03-24 8 views
5

Sto eseguendo 64 bit R su Ubuntu 12.10 AMD64. Di recente ho aggiunto altri 8 GB di memoria al mio sistema, per un totale di 12 GB. Ma noto che R mi dà un errore ogni volta che l'utilizzo della memoria (di una singola sessione R) supera i 4 GB. Quando ho eseguito 6 sessioni R in parallelo, ciascuna consumando circa 3 GB di memoria, il mio utilizzo di memoria è aumentato fino a 11 GB. Ma una singola sessione R non è in grado di utilizzare più di 4 GB! Ho bisogno di addestrare un modello di foresta casuale su un grande set di dati e ho bisogno di> 4 GB con una singola sessione R.R non utilizza più di 4 GB di memoria

Aggiornamento:

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 

Aggiornamento 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 
+0

Non ho problemi con 64-bit R su Fedora AMD64. Ho usato 30G prima. Forse hai quote di processo? –

+7

puoi pubblicare l'output di 'sessionInfo()'? – Dason

+0

@Dason ha aggiunto l'output di sessionInfo() –

risposta

0

In un sistema operativo di Windows, per impostazione predefinita, R installa entrambe le versioni 32 e 64 bit. Sebbene, sembra che Linux no. Se si utilizza un IDE come RStudio, se installato, punta alla versione a 32 bit. Puoi cambiarlo nelle impostazioni di Rstudio.

+0

Vedere il risultato di 'sessionInfo()' nella domanda modificata. E non sono sicuro che Ubuntu installa la versione a 32 bit quando si installa la versione a 64 bit. Fedora no. –

+0

@MatthewLundberg, ho modificato la mia risposta per riflettere sul fatto che R non installa entrambe le versioni in Linux. Tuttavia, non sto cancellando la risposta perché mi sono imbattuto in questo esatto problema nei miei laboratori. Uno studente stava usando RStudio in Windows, aveva entrambe le versioni R installate e aveva problemi di RAM. Una volta modificata la configurazione RStudio in R x64, ha funzionato. Non risponde a questo post ma è comunque utile. –

1

Ho il sospetto che i limiti del processo siano in vigore, limitando qualsiasi processo specificato a 4G.

Prova ulimit -a e cerca eventuali valori non illimitati relativi alla memoria.

Inoltre, esaminare il file /etc/security/limits.conf e tutti i file in /etc/security/limits.d/ per le voci sui limiti di memoria.

In particolare, questi due:

data 
as 

Vedi man limits.conf per le quote che possono essere eseguite da PAM.

+0

ulimit mostra 'unlimited', il file /etc/security/limits.conf è interamente commentato, e non ci sono file in /etc/security/limits.d/ –

+0

@SagarJauhari Oh, scusa, prova 'ulimit -a' a cercare limiti di memoria! –

+0

Il mio errore. Aggiunto l'output sopra. –