我有一个pdist
网络应用程序托管在smaller_xy
(React
)上。该应用在后端(DigitalOcean
)上具有Ubuntu 16.04
脚本,该脚本由R
调用(node
命令将调用shelljs
脚本。它永远不会进入exec回调):
shCMD
我正在使用R
启动服务器。它在exec_full_analysis = shell.exec(shCMD, function(code, stdout, stderr) {
if (code === 0) {
console.log('Program output:', stdout);
pdfService.drawChartsPDF(typeArr, analysisId, datasetArr, pairArr, filterArr);
console.log('sendStatus 200')
res.sendStatus(200);
} else {
console.log('Program stderr:', stderr);
//res.sendStatus(500);
}
});
环境中运行。因此,当脚本最初开始运行时,我看到foreverjs
为我提供了正确的日志输出(conda
脚本正在运行),但是很快就停止了日志输出的产生。浏览器和R
日志输出中都没有错误。服务器进入我的foreverjs
脚本中的某个阶段,并且以某种方式卡住了。是否有办法弄清楚到底出了什么问题?你会推荐什么?在本地,一切正常。唯一可能不同的是forever
环境,但我希望它会给出错误,但没有错误。
更新
我调查了R
,但没有看到conda
错误:https://www.digitalocean.com/community/questions/python-script-gets-killed
更新
/var/log/syslog
没问题:在OOM
脚本中,将简单的foreverjs
卡在同一位置。
脚本卡在node server.js
-包函数R
中:
Seurat
具有以下输出:
ScaleData在非标准化值上运行。建议的工作流程是首先运行NormalizeData。 回归:nUMI | | 0%
但是,当然,它在本地运行良好。并且在服务器上,它陷入了第二个ScaleData
循环迭代中,因此,它一次在服务器上运行得很好,但是第二次失败,好像运行在{ {1}}。
更新
服务器为 seurat_object <- ScaleData(object = seurat_object, vars.to.regress = c("nUMI"))
。我切换到for
,现在服务器运行正常,没有卡住,问题几乎解决了,除了现在我遇到了DigitalOcean
网关超时错误。
答案 0 :(得分:0)
因此,我不知道为什么,但是这是apache2
服务器问题。我切换到nginx
,但是出现了RAM
内存不足错误,该错误是通过减少我的R
脚本使用的内存量来解决的:
options(java.parameters = "-Xmx6000m")
是-Xmx8000m
。然后脚本在服务器上正确完成了,但是在客户端上,我看到了504
网关超时错误,该错误由我在这里找到的解决方案修复:https://asdqwe.net/blog/solutions-504-gateway-timeout-nginx/
使用以下命令在/etc/nginx/conf.d/timeout.conf
上创建文件:
proxy_connect_timeout 3000;
proxy_send_timeout 3000;
proxy_read_timeout 3000;
send_timeout 3000;
此后它终于开始工作