【问题标题】:Why does a Java server lag if your RDP connection lags?如果您的 RDP 连接滞后,为什么 Java 服务器会滞后?
【发布时间】:2012-05-06 19:40:05
【问题描述】:

我有一个在 Windows 2008 机器上运行的 Java 服务器应用程序,我经常通过 RDP 连接以监控它或完成其他工作。但是,如果我的 RDP 连接一直滞后,Windows 似乎也会挂起,导致 Java 丢弃一些客户端连接。有谁知道为什么某些 RDP 数据包丢失会以如此有害的方式影响系统,以及是否有什么可以解决的?否则我可能需要开始使用第 3 方远程处理应用程序。

【问题讨论】:

  • 为什么滞后不会影响您的 java 应用程序?
  • ... 或者您为什么认为 RDP 是原因?当然,更有可能是机器上游的网络拥塞,这会影响 RDP 和 Java 应用程序。
  • 这是一款网络容量巨大的高端专用服务器。在过去的 12 个月中已经相当确凿地表明,任何突然的大规模客户端断开连接总是要归咎于不稳定的 RDP 连接,而终止 RDP 会话是稳定服务器的最佳方法。

标签: java windows-server-2008-r2 remote-desktop


【解决方案1】:

通常期望在屏幕上绘制是同步且快速的,在这种情况下,其他任务是否需要在 UI 线程上执行,或者 UI 线程是否持有与后台线程竞争的锁通常都无关紧要。但是,一旦您将 RDP 加入混合中,UI 线程将一直保持到绘制完成,如果您的连接滞后,这可能需要一段时间。这将对必须等待绘制完成的任何其他任务产生连锁反应。

我的理解是,VNC 通过记录更新的区域并异步抓取它们并将更新的数据发送到客户端来工作,而 pcAnywhere 通过隐藏绘制命令并将它们异步发送到客户端来工作。这两者都允许应用程序在远程连接赶上时全速绘制。

【讨论】:

  • 似乎是一个合理的解释。 Java 服务器应用程序定期将事件数据打印到控制台窗口,我假设它在 UI 上被阻止。我想知道禁用这些打印输出(标准 System.out.println)是否可以避免问题。并不是说这真的是一个选择,因为我们需要看看服务器在做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
相关资源
最近更新 更多