r memory error 해결방법 in linux
1
R Error: Cannot Allocate Vector of Size N GB
가끔 R을 돌리다가 위같은 에러메세지를 받게 된다. 메모리가 부족하다는 경고가 뜨는건데.. 이런 메세지가 안뜨고 자꾸 killed
같은 메세지나 core.xxx같은 쓰레기 파일이 생기면서 잡이 죽으면 메모리 부족을 의심해봐야한다.
만약에 서버에서 돌리고 있었다면,..
노드안에서 interactive하게 작업하는 것이 아니라 master에서 작업하고 있었던 것은 아닌지 다시한번 정신을 차려보자 (내 경우는 대부분 이랬음 히히)
현재 메모리 사용량 확인 gc()
현재 컴퓨터에 어느정도 메모리가 있고 R 사용량이 얼마나되는지 확인하기 위해서는 R:gc() function을 사용하면 된다.
1
2
3
4
5
6
7
8
9
10
# Garbage Collection
> gc()
used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
Ncells 275464 14.8 666217 35.6 NA 456226 24.4
Vcells 552790 4.3 8388608 64.0 204800 1821948 14.0
# gc(TRUE)
#Garbage collection 4 = 0+0+4 (level 2) ...
#17.8 Mbytes of cons cells used (50%)
#5.6 Mbytes of vectors used (9%)
윈도우 버전 memory.limit()
보통 구글링을 해보면 윈도우 로컬에서 R을 돌리는 것 기준으로 나와있는데, 다음과 같이 현재 메모리용량을 확인하고 재설정 할 수 있다.
1
2
memory.limit() # Check currently set limit
memory.limit(size = 35000) # Increase limit, MB
하지만 OS가 윈도우가 아니라면, Warning message:'memory.limit()' is Windows-specific
이런 경고 메세지를 받게 된다.
Linux 버전 unix
linux에서는 unix
라는 R function을 사용해서 메모리양을 확인하고 재설정 할 수 있다.
1
2
3
4
5
library(unix) # 없으면 설치 ㄱㄱ install.packages('unix')
rlimit_all() # Check memory status
rlimit_as(1e12) # Increases limit to ~12GB
- 시도는 안해봤지만 이런 방법도 있다고 함.
Reference
This post is licensed under CC BY 4.0 by the author.