Java 在中间件服务器(Jetty 9.3.XX)上的重负载上随机获取太多关闭等待状态

Java 在中间件服务器(Jetty 9.3.XX)上的重负载上随机获取太多关闭等待状态,java,mysql,tcp,ubuntu-14.04,jetty-9,Java,Mysql,Tcp,Ubuntu 14.04,Jetty 9,我们已经开发了Jersey web应用程序(REST API),下面是有关所用库/技术的详细信息: 泽西岛-v2.23.1开放JPA v2.4.1(MySQL-5.5.50) 码头-v9.3.18(JDK 8+) 操作系统-Ubuntu 14.04 基本上,我们有太多的随机等待问题。我们试图找出解决方案,下面是我们尝试过的参考文献列表 根据上述参考资料中的建议,我们更新了/etc/sysctl.conf、/opt/jetty9/etc/jetty.xml和/etc/security/

我们已经开发了Jersey web应用程序(REST API),下面是有关所用库/技术的详细信息:

  • 泽西岛-v2.23.1开放JPA
  • v2.4.1(MySQL-5.5.50)
  • 码头-v9.3.18(JDK 8+)
  • 操作系统-Ubuntu 14.04
基本上,我们有太多的随机等待问题。我们试图找出解决方案,下面是我们尝试过的参考文献列表

根据上述参考资料中的建议,我们更新了/etc/sysctl.conf、/opt/jetty9/etc/jetty.xml和/etc/security/limits.conf文件,其中包含以下详细信息:

/etc/sysctl.conf


net.ipv4.tcp\u fin\u timeout=20
net.core.rmem\u max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 16384 16777216
net.core.somaxconn=4096
net.core.netdev_max_backlog=16384
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_syncookies=1
net.ipv4.ip_local_port_range=1024 65535
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_拥塞控制=cubic

然后执行
Sysctl-p

/opt/jetty9/etc/jetty.xml

<!-- Server Thread Pool -->
    <Set name="ThreadPool">
      <!-- Default queued blocking threadpool -->
      <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">

        <Arg>
           <New class="java.util.concurrent.ArrayBlockingQueue">
              <Arg type="int">6000</Arg>
           </New>
      </Arg>

        <Set name="minThreads">10</Set>
        <Set name="maxThreads">200</Set>
        <Set name="detailedDump">false</Set>
      </New>
    </Set>

6000
10
200
假的
/etc/security/limits.conf


根硬文件40000
根软文件40000

我们也经历了代码优化步骤,但仍然没有成功。我已经了解了TCP连接状态的基本原理,以及CLOSE_WAIT状态的原因,然后尝试了上面提到的方法,还讨论了许多与stackoverflow上CLOSE_WAIT相关的问题,并试图解决问题,正如人们在那里提到的解决方案,但没有取得任何成功


有人能面对同样的问题并找到解决方案吗?

我也面临着这个问题,从2个月以来一直在努力解决,实际上这个问题是众所周知的,但到目前为止还没有找到合适的解决方案。