R Nie można przydzielić pamięci, chociaż pamięć wydaje się być dostępna
Po uruchomieniu kilku modeli muszę uruchomićsystem()
polecenie na moim skrypcie R, aby zamknąć moją instancję EC2, ale kiedy dojdę do tego punktu, otrzymuję:
cannot popen 'ls', probable reason 'Cannot allocate memory'
Uwaga: dla tego pytania próbowałem nawetls
co nie zadziałało
Przepływ mojego skryptu jest następujący
Załaduj model (około 2 GB)Kopiuj dokumenty i pisz do bazy danych MySQLPowyższe kroki są powtarzane około 20 razy w różnych modelach o średniej wielkości 2 GB każdy
Zakończ instancjęW tym momencie muszę zadzwonićsystem("sudo shutdown -h now")
i nic się nie dzieje, ale kiedy próbujęsystem("sudo shutdown -h now",intern=TRUE)
Dostaję błąd przydziału.
próbowałemrm()
dla wszystkich moich obiektów tuż przed wywołaniem zamknięcia, ale ten sam błąd nadal występuje.
Oto niektóre dane w moim systemie, które sąduża instancja EC2 Ubuntu
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] splines stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] RTextTools_1.3.9 tau_0.0-15 glmnet_1.8 Matrix_1.0-6
[5] lattice_0.20-10 maxent_1.3.2 Rcpp_0.9.13 caTools_1.13
[9] bitops_1.0-4.1 ipred_0.8-13 prodlim_1.3.2 KernSmooth_2.23-8
[13] survival_2.36-14 mlbench_2.1-1 MASS_7.3-21 rpart_3.1-54
[17] e1071_1.6-1 class_7.3-4 tm_0.5-7.3 nnet_7.3-4
[21] tree_1.0-31 randomForest_4.6-6 SparseM_0.96 RMySQL_0.9-3
[25] ggplot2_0.9.1 DBI_0.2-5
loaded via a namespace (and not attached):
[1] colorspace_1.1-2 dichromat_1.2-4 digest_0.5.2 grid_2.15.1
[5] labeling_0.2 memoise_0.1 munsell_0.3 plyr_1.7.1
[9] proto_0.3-9.2 RColorBrewer_1.0-5 reshape2_1.2.1 scales_0.2.1
[13] slam_0.1-25 stringr_0.6.1
Zwraca gc ()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 1143171 61.1 5234604 279.6 5268036 281.4
Vcells 1055057 8.1 465891772 3554.5 767962930 5859.1
Zauważyłem, że jeśli uruchomię tylko 1 model zamiast 20, to działa dobrze, więc może być tak, że pamięć nie jest wolna po każdym uruchomieniu, chociaż zrobiłem torm()
używane przedmioty
Zauważyłem też, że jeśli zamknę R i uruchomię go ponownie, a następnie zadzwonięsystem()
to działa. Jeśli istnieje sposób na ponowne uruchomienie R w R, może mogę dodać to do mojegoscript.sh
pływ.
Byłby to odpowiedni sposób na oczyszczenie wszystkich moich obiektów i zwolnienie pamięci dla każdej pętli, więc kiedy muszę zadzwonić dosystem()
komendy nie ma problemu z pamięcią?
Każda wskazówka we właściwym kierunku zostanie bardzo doceniona! Dzięki