Случайное получение слишком большого количества состояний CLOSE_WAIT при большой нагрузке на сервер промежуточного программного обеспечения (Jetty 9.3.XX)

Мы разработали веб-приложение на Джерси (REST API) и ниже приводим подробную информацию об используемых библиотеках / технологиях:

  • Джерси - v2.23.1 Открыть JPA
  • v2.4.1 (MySQL - 5.5.50)
  • Причал - v9.3.18(JDK 8+)
  • ОС - Ubuntu 14.04

В основном, мы получаем слишком много проблем CLOSE_WAIT в случайном порядке. Мы попытались найти решение, и ниже приведен список использованных нами ссылок.

Как указывалось в приведенных выше ссылках, мы обновили файлы /etc/sysctl.conf, /opt/jetty9/etc/jetty.xml и /etc/security/limits.conf со следующими подробностями:

/etc/sysctl.conf


net.ipv4.tcp_fin_timeout = 20
net.core.rmem_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_congestion_control = кубический

Затем выполняет
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>

/etc/security/limits.conf


корень жесткий нофиле 40000
корень мягкий нофиле 40000

Мы также прошли этапы оптимизации кода, но все же не повезло. Я прошел через основные состояния TCP-соединения, и причина состояния CLOSE_WAIT затем попробовал вышеупомянутые способы, как упомянуто, также прошел через многие вопросы, связанные с CLOSE_WAIT на стековом потоке, и попытался решить проблему, поскольку люди упоминали о решениях там, но не получили никакого успех.

Может кто-нибудь сталкивался с такой же проблемой и нашел какое-то решение?

0 ответов

Другие вопросы по тегам