【问题标题】:ERR_EMPTY_RESPONSE shiny serverERR_EMPTY_RESPONSE 闪亮的服务器
【发布时间】:2021-11-07 05:55:31
【问题描述】:

我目前在 centos7 发行版的闪亮服务器开源上托管了许多闪亮的应用程序。所有应用程序都运行良好,但对于其中一个应用程序,当我尝试访问该 url 时,我收到以下消息:

此页面无法正常工作 没有收到任何数据。 ERR_EMPTY_RESPONSE。

托管在同一台闪亮服务器上的所有其他闪亮应用都运行良好。我检查了/var/log/shiny-server 并且没有此应用程序的日志文件。由于其他应用程序运行良好,我认为这不是端口问题。

其他应用程序与此应用程序的唯一区别是用户使用最多。运行时闪亮服务器是否有一些限制/限制?我无法弄清楚问题是什么。该应用程序在 RStudio Server 上运行良好,如果我将其复制到 /srv/shiny-server/ 的新目录中并使用不同的名称,它也可以正常运行。

【问题讨论】:

    标签: r shiny centos7 shiny-server


    【解决方案1】:

    一些想法:

    • 如果进程成功关闭,则 Shiny 会删除日志文件。因此,您可能会丢失一些日志文件。您可以使用preserve_logs 覆盖它,请参阅here。您的用户可能在与应用的交互过程中触发了一些错误,但其他会话是成功的,因此闪亮会删除日志文件。
    • Shiny 默认为每个应用创建一个进程,但会话数量不受限制(请参阅here)。这意味着,如果您的应用程序是用户使用最多的应用程序,那么每个用户都会生成一个新会话。如果应用程序是计算密集型的,那么一些用户会话可能会积压,这可能会触发 ERR_EMPTY_RESPONSE。您可以通过使用 Docker 为每个用户启动一个进程来解决此问题。 Here 是一些选项,我发现 shinyproxy 是最直观的。

    【讨论】:

    • 您好,感谢您的信息。我将整理日志文件。我知道该应用程序是单线程的,但它的计算成本并不高,所以我怀疑积压是一个问题。它也不会通过 Promise 从异步中受益。不幸的是,由于公司政策,我不能碰码头。首先,这将是我的首选。但是我确实想知道用户是否以某种方式使该工具崩溃并断开连接,这会导致积压吗?我不这么认为,但我猜。
    • 即使它不是计算密集型的,太多的用户也可能会压倒你的盒子(正如你所怀疑的那样)。如果错误消息与许多用户相关,那么您就有了答案,您可以寻找解决方案(Docker、RStudio Connect 是另一个更大的盒子,多线程)。如果你真的需要确认,你可以查看你盒子上的统计数据,看看当用户开始看到 ERR_EMPTY_RESPONSE 消息时 CPU 或其他东西是否出现峰值。如果是这种情况,R 代码将无法解决您的问题。
    • 您好,再次感谢。 preserve_logs 确实有帮助!非常愚蠢和尴尬,我在代码中留下了一个无限循环!
    • 不需要自嘲!类似的事情会发生,这就是为什么有日志和调试工具的原因。我猜那是编码。如果对您有用,请接受答案。
    猜你喜欢
    • 2021-03-10
    • 2016-05-23
    • 2015-10-05
    • 2016-10-26
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多