【问题标题】:What could stop h2o responding to our R script?什么可以阻止 h2o 响应我们的 R 脚本?
【发布时间】:2019-06-03 02:49:15
【问题描述】:

h2o 服务可能停止响应 http REST API 请求的可能原因有哪些?

我们正在使用 R CRAN 包,经过一段时间后,h2o 服务器停止响应。我们捕获了各种日志,但没有明显的错误或原因。还有一个一致性问题,我将在日志之后详细说明。 h2o.logging() 日志显示:

Time:     2019-01-07 11:13:19.262

GET       http://localhost:54321/3/Jobs/$03017f00000132d4ffffffff$_936500deb000be7364a7e2ce61d5451e
postBody:

curlError:         FALSE
curlErrorMessage:
httpStatusCode:    200
httpStatusMessage: OK
millis:            3513

{"__meta":{"data":"removed as it is not relevant"}}

------------------------------------------------------------

Time:     2019-01-07 11:13:25.013

GET       http://localhost:54321/3/Jobs/$03017f00000132d4ffffffff$_936500deb000be7364a7e2ce61d5451e
postBody:

curlError:         TRUE
curlErrorMessage:  Failed to connect to localhost port 54321: Connection refused
httpStatusCode:    -1
httpStatusMessage:
millis:            88616

主日志显示它之前正在工作:

Connection successful!

R is connected to the H2O cluster:
    H2O cluster uptime:         2 minutes 9 seconds
    H2O cluster timezone:       Etc/UTC
    H2O data parsing timezone:  UTC
    H2O cluster version:        3.20.0.8
    H2O cluster version age:    3 months and 17 days !!!
    H2O cluster name:           H2O_started_from_R_root_ttz747
    H2O cluster total nodes:    1
    H2O cluster total memory:   255.99 GB
    H2O cluster total cores:    2
    H2O cluster allowed cores:  2
    H2O cluster healthy:        TRUE
    H2O Connection ip:          localhost
    H2O Connection port:        54321
    H2O Connection proxy:       NA
    H2O Internal Security:      FALSE
    H2O API Extensions:         XGBoost, Algos, AutoML, Core V3, Core V4
    R Version:                  R version 3.5.1 (2018-07-02)

  |======================================================================| 100%
  |======================================================================| 100%
Error in .h2o.__checkConnectionHealth() :
  H2O connection has been severed. Cannot connect to instance at http://localhost:54321/
Failed to connect to localhost port 54321: Connection refused
Calls: <Anonymous> -> .h2o.__remoteSend -> .h2o.__checkConnectionHealth

有趣的是,它在有这个问题的机器(大多数)上是 100% 可重复的,但我们也有两台机器没有出现这个问题(至少看起来没有,我们可以不排除他们从来没有,但他们通常运行良好)。

我发现 h2o 永远不会自行关闭,所以这不太可能。我们停止了 R 脚本中的任何并行性,这并没有改变任何东西。

因此,我们需要有关如何在此处识别问题并解决问题的建议。

【问题讨论】:

  • java服务器进程死了吗?或者只是被数据填满而变得无响应?我会查看 java 进程 stdout 和 stderr 以了解发生了什么。
  • @TomKraljevic 看来 h2o Java 进程死了。至少它现在没有运行,并且没有任何代码故意停止它。但是 Rscript 删除了所有日志,所以可能有什么东西正在关闭它。我们修改了脚本,最后为我们复制了日志,.out 文件中没有任何内容表明有任何问题。确实,h2o日志都被抓到了,-error和-fatal日志都是空的。
  • @TomKraljevic 我已经在其中一台“工作”机器上运行,最后 h2o 服务器不再运行,因此 R 系统必须对其进行清理。因此,我们无法从中获得任何信息。如果有人能够提供专业的帮助来解决这个问题,请与我们联系。
  • H2O.ai 公司为 H2O 开源产品提供企业支持(即“专业帮助”)。您可以联系 sales@h2o.ai 了解更多信息。
  • 您是从 R 中使用 h2o.init() 还是从命令行启动 H2O 的?如果是前者,请尝试从命令行使用java -jar h2o.jar 或使用此处详述的高级选项:docs.h2o.ai/h2o/latest-stable/h2o-docs/…

标签: r h2o


【解决方案1】:

看起来 h2o 连接“打开”了太多文件,超出了机器上设置的默认限制,导致崩溃。

可以通过以下方式检查打开文件描述符的限制:

ulimit -n

以后软限制可以修改为更大的valuer:

ulimit -Sn 5000

【讨论】:

    猜你喜欢
    • 2021-02-26
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多