Saltar al contenido

Error: memoria vectorial agotada (¿límite alcanzado?) R 3.5.0 macOS

Solución:

Para aquellos que usan Rstudio, encontré esa configuración Sys.setenv('R_MAX_VSIZE'=32000000000) solo funciona en la línea de comando, y esa configuración de ese parámetro mientras se usa Rstudio no evita este error:

Error: vector memory exhausted (limit reached?)

Después de leer un poco más, encontré este hilo, que aclara el problema con Rstudio e identifica una solución, que se muestra a continuación:

Paso 1: terminal abierto,

Paso 2:

cd ~
touch .Renviron
open .Renviron

Paso 3: guarde lo siguiente como la primera línea de .Renviron:

R_MAX_VSIZE=100Gb 

Nota: Este límite incluye tanto la memoria física como la virtual; por lo que configurar _MAX_VSIZE = 16 Gb en una máquina con 16 Gb de memoria física puede no evitar este error. Puede que tenga que jugar con este parámetro, dependiendo de las especificaciones de su máquina

R 3.5 tiene un nuevo límite de sistema para la asignación de memoria. De las notas de la versión:

La variable de entorno R_MAX_VSIZE ahora se puede usar para especificar el tamaño máximo del montón del vector. En macOS, a menos que lo especifique esta variable de entorno, el tamaño máximo del montón de vectores se establece en el máximo de 16 GB y la memoria física disponible. Esto es para evitar que el proceso R se elimine cuando macOS compromete la memoria en exceso.

Puede anular esto. Te arriesgas a sobreasignar y matar el proceso, pero eso es probablemente lo que estaba sucediendo si golpeabas una pared dura con R 3.4.4 o lo que sea que estuvieras usando antes.

Ejecute lo siguiente en Terminal para crear una variable de entorno temporal R_MAX_VSIZE con valor 32GB (cambiar para adaptarse):
export R_MAX_VSIZE=32000000000

O si no desea abrir Terminal y ejecutarlo cada vez que desee iniciar una sesión de R, puede agregar la misma línea a su perfil de bash. Abre Terminal y encuentra tu perfil de bash open .bash_profile y, en un editor de texto, agregue la línea de arriba.

Aún tendrá que abrir Terminal e iniciar R desde allí. Puede ejecutar R en la terminal simplemente ejecutando R o puede abrir la GUI open -n /Applications/R.app.

Para realizar este cambio en una sesión de R, use Sys.setenv('R_MAX_VSIZE'=32000000000)
y comprobar el valor de uso Sys.getenv('R_MAX_VSIZE')

Aquí puede encontrar una solución para aquellos que no estén familiarizados con la línea de comandos:

En resumen, la solución es utilizar el usethis paquete.

usethis::edit_r_environ() abrirá el .Renviron que se encuentra en su directorio de inicio. Este .Renviron afecta a todo el trabajo de Rstudio

usethis::edit_r_environ("project") abrirá un .Renviron local a su proyecto. Los cambios realizados en este archivo solo afectan el trabajo realizado en ese proyecto de Rstudio en particular.

Una vez abierto, el R_MAX_VSIZE var se puede configurar.

La página enlazada también enlaza con este blog que describe el proceso de inicio de R con gran detalle.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *