Я недавно запустил и AWS экземпляр для размещения веб-сайта в Flask. У меня также есть несколько файлов R в экземпляре, который я настроил для запуска на cron для обновления шаблонов html в экземпляре Flask. Однако один из сценариев R не работал, поэтому я решил присмотреться. Казалось, он всегда получал команду «Killed» из AWS, даже если он запускался вручную, а не в crontab. Я отредактировал скрипт R, чтобы иметь несколько команд print
, чтобы увидеть, где код зависает. Я обнаружил, что код зацикливается не на каких-то сложных вычислительных частях, а на самом деле просто «открывает» ранее определенную функцию. Я включил пример кода ниже для справки:
# Import libraries & SetWD
setwd("/home/ec2-user/folder')
library(xml2)
# Define function
functionx <- function(input1, input2){
# Comment here
print('the function has started 2')
... - the rest of the function
}
# Some more code down here to actually run the function
for(i in 1:10){
print('about to start the function')
print('the function has started 1')
answer <- functionx(i, input2)
}
При запуске скрипта в PuTTY я всегда получаю следующие сообщения:
[1] "about the start the function" <- this one is instantaneous
[1] "the function has started 1" <- this one occurs <1 second after the previous one
[1] "the function has started 2" <- this one takes about 10 minutes to show up
Killed <- this happens about 2-3 seconds after the message before it
Я пытался запустить Код локально, без проблем. Я пытался остановить Flask, пока он работает, это не влияет. Я понимаю, что могут быть некоторые проблемы с памятью, но только инициирование функции, которая облагается налогом? У кого-нибудь еще была такая проблема?
AWS Характеристики: AWS Linux AMI EC2 t.2 micro (1 ГБ ОЗУ)
R Характеристики: R 3.4.1