大量 TIME-WAIT 连接

大量 TIME-WAIT 连接

我在 Solaris 系统上运行。我编写了一个 Korn shell 脚本,每 30 秒运行此行:netstat -a | grep TIME-WAIT | wc -l

一年来,它一直运行良好。现在我搬到了一个新实验室,当我运行它时,TIME-WAIT 中的连接数从 80 个增加到 32000 个。

大多数这些连接都是与在本地网络上的不同机器上运行的 ldap 服务器进行的。

有人见过这种现象吗?你是怎么解决的?

谢谢。

答案1

nscd 正在运行吗?我猜以前是运行的,现在不运行了。nscd 用于缓存某些类型的目录数据(特别是组和密码)。如果它没有运行,那么每当您执行需要访问目录服务器的查找时,它们(可能)必须建立与 ldap 主机的连接,而不是先查询缓存。

由于您没有说明 solaris 的版​​本,我假设它是 10。您可以通过执行以下操作来检查 nscd 是否正在运行:

svcs -l 名称服务缓存

并查看它是否处于在线状态。如果不是,您可以尝试使用以下命令重新启动它:

svcadm 刷新名称服务缓存

如果仍然失败,您应该检查它的日志文件,您可以在上面的 svcs 命令的输出中找到它。

答案2

TIME-WAIT 状态通常是由应用程序中的套接字关闭逻辑损坏引起的。您需要识别两端的进程,检查每个进程以了解其正在做什么,并检查另一台服务器。

尝试确定单个 TIME-WAIT 连接是否保持很长时间,或者是否有大量连接在短时间内创建然后被丢弃。

相关内容