【问题标题】:Jetty - blocked http requests for short period of time (up to 12 seconds)Jetty - 在短时间内阻止 http 请求(最长 12 秒)
【发布时间】:2011-08-19 12:02:36
【问题描述】:

我在 ubuntu 服务器上使用 Jetty 7.3.1 作为我的 webContainer。我有负载很重的网络,300 个用户在线,有很多 ajax。我的问题是,每隔 1-2 分钟码头就会停止接受 http 请求,并且这些请求正在等待,大部分时间长达 12 秒,然后才被处理。我怎样才能知道发生了什么事???我可以以某种方式跟踪日志吗?我如何发现码头在那 12 秒内没有重新启动。也许配置了一些非常错误的东西,码头正在尝试重新启动以修复它。我怎样才能知道发生了什么?感谢您的任何想法。

我有足够的内存和 CPU 负载很好。

这是我来自 jetty.xml 的配置片段:

<Set name="ThreadPool">       
      <New class="org.eclipse.jetty.util.thread.QueuedThreadPool"> 
        <Set name="minThreads">50</Set> 
        <Set name="maxThreads">600</Set> 
        <Set name="detailedDump">false</Set> 
      </New> 
    </Set> 


    <Call name="addConnector"> 
      <Arg> 
          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
            <Set name="host"><Property name="jetty.host" /></Set> 
            <Set name="port"><Property name="jetty.port" default="80"/></Set> 
            <Set name="maxIdleTime">30000</Set> 
            <Set name="Acceptors">2</Set> 
            <Set name="statsOn">false</Set> 
            <Set name="confidentialPort">8443</Set> 
            <Set name="lowResourcesConnections">5000</Set> 
            <Set name="lowResourcesMaxIdleTime">2000</Set> 
            <Set name="useDirectBuffers">false</Set> 
          </New> 
      </Arg> 
    </Call> 

【问题讨论】:

  • 我找到了解决方案。滞后是由 JRebel 造成的。我把 Jrebel 踢了出去,所有的滞后都消失了。坏坏 JRebel:(

标签: java ajax servlets ubuntu jetty


【解决方案1】:

如果您向进程发送 QUIT 信号(“kill -SIGQUIT PID”),它会将所有线程的堆栈转储到标准输出。也许它会给你一个关于服务器实际在做什么的指示。

【讨论】:

  • 我忘了,我开始使用 JRebel。我做了 jstack,许多线程之一正在调用一些 JRebel 函数,所以也许 Jrebel 可能会导致滞后。
【解决方案2】:

您可能有足够的内存,但这并不意味着它正在被有效地使用和释放。我的第一个怀疑是发生“停止世界”垃圾收集或 CMS 故障。您可能想要分析垃圾收集。

第二个疑点可能是某种同步问题,即多个线程都堆积起来等待同一个资源。同样,分析可能会帮助您找到这一点。这可能就是您在 JRebel 中看到的。

【讨论】:

  • 肯定不是垃圾回收的问题。我有这个项目多年,这些滞后是新的。我只是做了一些改变,有些东西已经磨损了。更改是:我添加了 JRebel,Jetty 以编程方式加载(在外部加载之前),并且我添加了一些过滤器以供继续使用。 100%不是编程问题。我只是错过了一些东西。我在使用 jetty + reverse ajax 时遇到了很多问题,比如启用了 directbuffer,它使码头崩溃了。但现在,我不知道我怎么能做这个分析。如何使用 Jrebel 进行分析?
  • "100% 不是编程问题。" - 我不再关注那里了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 2018-09-09
  • 2023-03-03
  • 2021-01-05
  • 1970-01-01
相关资源
最近更新 更多