mem_used()报告不切实际的内存使用情况

时间:2019-01-18 00:44:10

标签: r memory pryr

我正在使用256 GB的RAM在hpc群集上运行脚本,并且有一个42GB的csv文件,正在将R作为数据帧读入R。 但是当我这样做时,该程序说它正在使用148,000,000 TB的内存,这是完全不现实的。

我正在使用pryr包的mem_used()和object_size()函数运行r / 3.5.0,以在程序运行时监视内存使用情况。

>library(data.table)
>library(pryr)
>mem_used()
27.1 MB
>myData <- fread("myData.csv")
>object_size(myData)
35.4 GB
>mem_used()
148,000,000 TB

程序会继续运行一段时间,并进行一些操作,但最终由于内存使用过多而终止。

一直以来,持续报告正在使用148,000,000 TB的内存。

您有没有遇到过这种情况,或者知道会发生什么?

我希望能够评估该程序的实际内存使用情况。

谢谢

编辑: 这是sessionInfo():

> sessionInfo()
R version 3.5.0 (2018-04-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS: /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx2/Compiler/intel2016.4/r/3.5.0/lib64/R/lib/libR.so
LAPACK: /cvmfs/soft.computecanada.ca/easybuild/software/2017/avx2/Compiler/intel2016.4/r/3.5.0/lib64/R/modules/lapack.so

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=en_US.UTF-8       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   base

other attached packages:
[1] pryr_0.1.4        data.table_1.11.8

loaded via a namespace (and not attached):
[1] compiler_3.5.0   magrittr_1.5     tools_3.5.0      Rcpp_1.0.0
[5] stringi_1.2.4    codetools_0.2-15 stringr_1.3.1

0 个答案:

没有答案