相关疑难解决方法(0)

避免 TIME_WAIT 连接

当我使用 netstat 命令时,它显示..

tcp 0 0 本地主机:18056 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16683 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16701 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16888 本地主机:mysql TIME_WAIT
本地主机WAIT2TIME_WAIT 本地主机WAIT2TIME
tcp 0 0 本地主机:17725 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17682 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17414 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17606 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17737 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16632 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16825 本地主机:mysql TIME_WAIT 本地主机WAIT 时域主机WAIT 0 0 0 本地主机:mysql TIME_WAIT
本地主机时
tcp …

netstat time-wait

8
推荐指数
1
解决办法
10万
查看次数

使用 ab 运行一些基准测试,tomcat 开始真的变慢了

我正在使用 apache bench 为在 tomcat 上运行的 java 应用程序运行一些基准测试。

说我运行一个测试,如:

ab -c 10 -n 10000 http://localhost:8080/hello/world
Run Code Online (Sandbox Code Playgroud)

它会运行得很好。如果我遵循它:

ab -c 50 -n 50000 http://localhost:8080/hello/world
Run Code Online (Sandbox Code Playgroud)

再次它会运行良好,但如果我再试一次,它可能会在 3500 个完成的请求后开始变慢。

我需要帮助来尝试调试此问题的根本原因。

我跑到了上面,我有一些未使用的内存,所以内存似乎不是问题。

tomcat6 进程确实达到了 70-80 甚至 107%。

似乎重新启动 tomcat 可以解决问题,但有时需要重新启动服务器。

这是在分配了 200 个线程的默认 tomcat 安装上。

Tomcat 日志为空。

更新

因此,我将 tcp_tw_recycle/reuse 都更改为 1,并且现在运行 netstat 显示的计数非常低。

在更改 tcp_tw_recycle/reuse 之前,我注意到事情变慢并运行 netstat 并且我有 32400 个 tcp TIME_WAIT 连接。

所以现在运行基准测试的更新,使用 -k 开关,我看到了更多的吞吐量。但是,在某些时候事情又开始变慢了,但是现在重新启动 tomcat 使事情恢复正常。之前,即使我重新启动tomcat,运行ab 的响应时间也会非常非常慢。 现在更改 tcp_tw_recycle/reuse 后,重新启动 tomcat 使事情恢复正常。运行 top 显示只有大约 20% 的 cpu 的 tomcat,所以现在看来​​问题出在 tomcat 上,但我怎么知道是什么?

ubuntu tomcat java

6
推荐指数
1
解决办法
1628
查看次数

Munin 的 fw_conntrack 在 TIME_WAIT 报告奇怪数量的套接字

  • Ubuntu 服务器 10.04.1 x86
  • 穆宁 1.4.4

以下是 Munin 告诉我的有关通过服务器上的防火墙进行连接的信息:

时间的等待

下面是netstat -n关于这个的内容:

$ netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
      2 CLOSE_WAIT
      1 结束
   3720 成立
     34 FIN_WAIT1
     21 FIN_WAIT2
     13 LAST_ACK
      6 听
      4 SYN_RECV
    第394话

netstat,10% 的插座在TIME_WAIT; 根据穆宁的说法,75% 或更多。

这很奇怪。谁是对的?

有关配置等的更多详细信息,请访问:How to reduce number of sockets in TIME_WAIT?

unix ubuntu monitoring munin

3
推荐指数
1
解决办法
2207
查看次数

tcp state TIME_WAIT & HTTP keep-alive 的关系

HTTP 请求上的 keep-alive 和 TIME_WAIT 中的 tcp 套接字之间有什么关系 - 它们应该相关吗?

此外,系统和网络服务器设置是否应该保持一致,例如server.max-keep-alive-idle = 60?根据如何减少 TIME_WAIT 中的套接字数量?在 Linux 中,TIME_WAIT 状态被硬编码为 60 秒(至少对于 Linux 的 Ubuntu/Debain 值)。

在 lighttpd 中是默认值server.max-keep-alive-idle = 5,他们建议在高负载时甚至更低。如果 tcp 套接字可用,则在 5 秒后关闭 http 请求似乎是一种浪费——当然,假设设置按照net.ipv4.tcp_tw_reuse = 1它在锡上所说的进行。

这个相关的问题 - tcp 如何保持连接有效?[关闭]触及了这个问题,但没有为我完全回答。

http tcp keepalive time-wait

3
推荐指数
1
解决办法
7166
查看次数

标签 统计

time-wait ×2

ubuntu ×2

http ×1

java ×1

keepalive ×1

monitoring ×1

munin ×1

netstat ×1

tcp ×1

tomcat ×1

unix ×1