Hola: Por lo visto tengo un problema de gestión de la memoria en R con un programa que trabaja con archivos por lotes (no sé si se dice así en castellano, en "batch" mode) para elaborar unos informes, etc. En el conjunto de datos de un año concreto, tengo 197 archivos xml que procesar, de entre 50 y 200Kb la mayoría, con un total de 28 Mb en total. Trabajo con Eclipse como IDE (lo digo por si influye que la consola de R se ejecute desde allí a través de rJava, creo entender), y el ordenador tiene 2Gb de RAM. Pues la cuestión es que des de hace unas semanas se me cuelga la sesión de R antes de llegar al final del procesado de archivos (hoy en el archivo número 180) El mensaje de la consola es algo así como: ------------------------------------------- Error in system(paste("rm ", myfilename, sep = ""), TRUE) : cannot popen 'rm files_out/2010/report_on_file_list.txt', probable reason 'No s?ha pogut reservar memòria' ------------------------------------------- 'No s?ha pogut reservar memòria' = No se ha podido reservar memoria Y lo más curioso, es que si salgo de la sesión de R y Eclipse, y vuelvo a entrar, normalmente puedo ejecutar todo el procesado por lotes hasta el final sin problemas. Así que me huelo que hay algun problema de gestión de memòria o en R o en Eclipse (y/o en mi script, claro). ¿En lo que hace referencia a R (para ir descartando cosas, e ir aprendiendo a monitorear mejor el uso de su memoria por parte de mis scripts), hay alguna manera fácil de verla y moniteorarla? Gracias de antemano por las pistas que me podáis dar para investigar más sobre el tema. Xavi
Mmm, parece ser que el problema está en Java y/o Eclipse, no en R (al borrar todos los objetos del espacio de trabajo de R y empezar de nuevo tenía el mismo problema; y algo parecido se deducía al mirar el uso de la memoria del todo el sistema operativo y lo que ocupaban los procesos de Java y Eclipse). Así, he ejecutado el script desde otro IDE mucho más ligero (rkward), y el consumo de memoria del sistema por el IDE era un orden de magnitud menor (!), y R no ha tenido ningun problema en procesar todos los archivos hasta el final, etc. De todas formas, mi interes por aprender más sobre como monitorear y gestionar la memoria de R sigue vigente. Si alguien tiene alguna recomendación, ¡será bien recibida! Xavi On 02/03/11 11:21, Xavier de Pedro wrote:> Hola: > > Por lo visto tengo un problema de gestión de la memoria en R con un > programa que trabaja con archivos por lotes (no sé si se dice así en > castellano, en "batch" mode) para elaborar unos informes, etc. > > En el conjunto de datos de un año concreto, tengo 197 archivos xml que > procesar, de entre 50 y 200Kb la mayoría, con un total de 28 Mb en > total. Trabajo con Eclipse como IDE (lo digo por si influye que la > consola de R se ejecute desde allí a través de rJava, creo entender), > y el ordenador tiene 2Gb de RAM. > > Pues la cuestión es que des de hace unas semanas se me cuelga la > sesión de R antes de llegar al final del procesado de archivos (hoy en > el archivo número 180) > > El mensaje de la consola es algo así como: > > ------------------------------------------- > Error in system(paste("rm ", myfilename, sep = ""), TRUE) : > cannot popen 'rm files_out/2010/report_on_file_list.txt', probable > reason 'No s?ha pogut reservar memòria' > ------------------------------------------- > > 'No s?ha pogut reservar memòria' = No se ha podido reservar memoria > > Y lo más curioso, es que si salgo de la sesión de R y Eclipse, y > vuelvo a entrar, normalmente puedo ejecutar todo el procesado por > lotes hasta el final sin problemas. > > Así que me huelo que hay algun problema de gestión de memòria o en R o > en Eclipse (y/o en mi script, claro). > > ¿En lo que hace referencia a R (para ir descartando cosas, e ir > aprendiendo a monitorear mejor el uso de su memoria por parte de mis > scripts), hay alguna manera fácil de verla y moniteorarla? > > Gracias de antemano por las pistas que me podáis dar para investigar > más sobre el tema. > > Xavi > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Hola, Para trazar el consumo de memoria puedes utilizar la función "Rprofmem()" de la librería "utils". También miraría si en el proceso batch de los múltiples ficheros que consultas, se cierras o no las conexiones una vez hecha la consulta. Mira para esto "close()". Saludos, Carlos Ortega www.qualityexcellence.es 2011/3/2 Xavier de Pedro <xavier.depedro@ub.edu>> Hola: > > Por lo visto tengo un problema de gestión de la memoria en R con un > programa que trabaja con archivos por lotes (no sé si se dice así en > castellano, en "batch" mode) para elaborar unos informes, etc. > > En el conjunto de datos de un año concreto, tengo 197 archivos xml que > procesar, de entre 50 y 200Kb la mayoría, con un total de 28 Mb en total. > Trabajo con Eclipse como IDE (lo digo por si influye que la consola de R se > ejecute desde allí a través de rJava, creo entender), y el ordenador tiene > 2Gb de RAM. > > Pues la cuestión es que des de hace unas semanas se me cuelga la sesión de > R antes de llegar al final del procesado de archivos (hoy en el archivo > número 180) > > El mensaje de la consola es algo así como: > > ------------------------------------------- > Error in system(paste("rm ", myfilename, sep = ""), TRUE) : > cannot popen ''rm files_out/2010/report_on_file_list.txt'', probable reason > ''No s’ha pogut reservar memòria'' > ------------------------------------------- > > ''No s’ha pogut reservar memòria'' = No se ha podido reservar memoria > > Y lo más curioso, es que si salgo de la sesión de R y Eclipse, y vuelvo a > entrar, normalmente puedo ejecutar todo el procesado por lotes hasta el > final sin problemas. > > Así que me huelo que hay algun problema de gestión de memòria o en R o en > Eclipse (y/o en mi script, claro). > > ¿En lo que hace referencia a R (para ir descartando cosas, e ir aprendiendo > a monitorear mejor el uso de su memoria por parte de mis scripts), hay > alguna manera fácil de verla y moniteorarla? > > Gracias de antemano por las pistas que me podáis dar para investigar más > sobre el tema. > > Xavi > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Gracias Carlos! Lo del close() ya lo tenía presente y todos los archivos que abro los cierro luego con close (aunque me aseguraré que con los cambios que hice en las últimas semanas no me quedasé algun cabo suelto en este campo). Lo del Rprofmem() no tenía ni idea, así que ya sé por donde seguir tirando del hilo... :-) Saludos y gracias de nuevo. Xavi On 02/03/11 12:37, Carlos Ortega wrote:> Hola, > > Para trazar el consumo de memoria puedes utilizar la función > "Rprofmem()" de la librería "utils". > > También miraría si en el proceso batch de los múltiples ficheros que > consultas, se cierras o no las conexiones una vez hecha la consulta. > Mira para esto "close()". > > Saludos, > Carlos Ortega > www.qualityexcellence.es <http://www.qualityexcellence.es> > > 2011/3/2 Xavier de Pedro <xavier.depedro@ub.edu > <mailto:xavier.depedro@ub.edu>> > > Hola: > > Por lo visto tengo un problema de gestión de la memoria en R con > un programa que trabaja con archivos por lotes (no sé si se dice > así en castellano, en "batch" mode) para elaborar unos informes, etc. > > En el conjunto de datos de un año concreto, tengo 197 archivos xml > que procesar, de entre 50 y 200Kb la mayoría, con un total de 28 > Mb en total. Trabajo con Eclipse como IDE (lo digo por si influye > que la consola de R se ejecute desde allí a través de rJava, creo > entender), y el ordenador tiene 2Gb de RAM. > > Pues la cuestión es que des de hace unas semanas se me cuelga la > sesión de R antes de llegar al final del procesado de archivos > (hoy en el archivo número 180) > > El mensaje de la consola es algo así como: > > ------------------------------------------- > Error in system(paste("rm ", myfilename, sep = ""), TRUE) : > cannot popen ''rm files_out/2010/report_on_file_list.txt'', probable > reason ''No s’ha pogut reservar memòria'' > ------------------------------------------- > > ''No s’ha pogut reservar memòria'' = No se ha podido reservar memoria > > Y lo más curioso, es que si salgo de la sesión de R y Eclipse, y > vuelvo a entrar, normalmente puedo ejecutar todo el procesado por > lotes hasta el final sin problemas. > > Así que me huelo que hay algun problema de gestión de memòria o en > R o en Eclipse (y/o en mi script, claro). > > ¿En lo que hace referencia a R (para ir descartando cosas, e ir > aprendiendo a monitorear mejor el uso de su memoria por parte de > mis scripts), hay alguna manera fácil de verla y moniteorarla? > > Gracias de antemano por las pistas que me podáis dar para > investigar más sobre el tema. > > Xavi > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <mailto:R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]