首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何诊断大量TIME_WAIT连接

如何诊断大量TIME_WAIT连接
EN

Server Fault用户
提问于 2013-04-05 12:37:26
回答 2查看 2.1K关注 0票数 1

我们只有一台服务器出现生产问题,并且性能缓慢与TIME_WAIT状态下的大量套接字相关联。如果不把这个问题作为一个巨大的背景,我们基本上知道,每次服务器运行缓慢时,大约80%的服务器套接字都处于TIME_WAIT状态,当然,通过运行netstat我们可以看到这种状态)。具体来说,由于TIME_WAIT超时并离开,当我们的服务器运行缓慢时,我们会看到这些TIME_WAITs经常出现(大约5-10分钟)。

我做了一些调查,发现TIME_WAITs发生在服务器关闭一个活动连接,但保持它周围,以防任何延迟的数据包通过。最后,TIME_WAIT超时了。

不管怎么说,究竟为什么一个单独的套接字一开始就进入TIME_WAIT状态?这是CentOS 5- Linux是否将此信息记录在var/logs中任何地方,或者是否有任何方法来执行tcpdump并查找导致TIME_WAIT的特定模式?提前谢谢。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-04-05 12:54:01

简短的回答-这是由于一个应用程序。该应用程序创建短期套接字,关闭它们,然后立即需要打开另一个套接字。惰性与要使用的套接字用完的进程(Es)有关。

在创建套接字时,有一些选项- SO_REUSEADDR和SO_REUSEPORT。它们有一些类似的功能,但我怀疑Centos 5中的SO_REUSEPORT是不可用的。无论如何,套接字调用上的可选设置允许立即重用端口。

所以,一个常用的修复方法是重新编码。它可能是一个网络应用程序,连接几秒钟,然后结束会话。

票数 1
EN

Server Fault用户

发布于 2013-04-05 15:18:24

它为套接字设置属性,然后它们由内核允许/强制执行。

  1. 在创建套接字时,SO_REUSEADDR是符合POSIX的选项。

http://pubs.opengroup.org/onlinepubs/009695399/functions/setsockopt.html

  1. 简短的回答-是的,也是的。因此,如果您在慢DSL上与一个孤独的远程办公室连接非常慢,可能会出现“延迟”数据包的问题。但是如果这些是你局域网中的连接,可能不是。
  2. 您的应用程序之一必须打开套接字批发,然后关闭他们。lsof将显示什么pid有一个插座打开。从那里可以派生出用户和正在运行的内容。例如,它可以像bash脚本一样简单地滥用netcat。

底线:这要么是滥用网络设施,要么是代码问题。你确实有一个网络应用程序--这个正在吞噬你的系统。我对net的定义是“使用TCP/UDP套接字”。不一定是网络服务器。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/496450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档