问题标签 [time-wait]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tcp - 无法减少 TIME_WAIT
我试图通过在此处详细设置 tcp_fin_timeout 来减少连接处于 TIME_WAIT 状态的时间:
但是,此设置似乎不会影响任何内容。当我查看机器的netstat时,连接仍然等待默认的60s:
有什么我想念的吗?该机器正在运行 Ubuntu 14.04.1。
response - 如何在 Rest-Assured 中设置等待响应的时间?
响应需要很长时间。如何可以放心地等待响应时间?
tcp - FTP 服务器问题 - TIME_WAIT 中的客户端过多
我们有一个包含 Apache FTP 服务器版本的软件。它接受传输的图像并存储它们。但是,在某些时候,图像会停止传输。我做了一个“netstat”命令,发现超过 3k 个连接处于“TIME_WAIT”状态 - 并且没有建立。time_wait 中的连接将过期,只会被其他连接替换。time_wait 在客户端,这意味着客户端是主动关闭连接的客户端,这意味着被动服务器。我相信客户端必须重新连接,但不知何故被到期连接的数量锁定了。这可能仅限于服务器上名为“max_ftp_connections”的变量。
任何人都可以对此有所了解吗?根据我的谷歌搜索,一个潜在的连接是使用“SO_LINGER”和客户端 - 但我无权访问该代码。不过,欢迎任何想法。
connection-pooling - python中的MySQL连接池?
我正在尝试使用 Python 处理大量数据并在 MySQL 中维护处理状态。但是,令我惊讶的是没有标准的 python-mysql 连接池(如 Java 中的 HikariCP)。
我最初是从 PyMySQL 开始的,在程序运行前几个小时之前一切都很好。几个小时后,事情开始失败。我遇到了很多错误,例如:
此外,由于缺乏连接池,我打开和关闭连接过于频繁,很多端口都卡在了 TIME_WAIT 状态
根据this和this,我尝试设置 tcp_fin_timeout 和 ip_local_port_range,但几乎没有任何改进。
然后我发现 MySQL 提供了带有池功能的 mysql.connector。在做了所有这些之后,性能实际上恶化了。更多进程开始失败。我正在使用 Python 的 multiprocessing 模块在 24 核机器上同时运行 29 个进程(multiprocessing.Pool 默认选择这个 no)。以下是代码,当然我使用 .my.cnf 来传递所有凭据以避免将它们提交给 git :
最后,恢复到旧代码。仍在使用 PyMySQL,尽管错误频率较低,但它仍然会导致重大问题。我查看了 SQLAlchemy,并没有真正找到很多关于池的文档。
我想知道其他人如何处理 mysql-python 连接池问题?我真的相信应该有一些东西,这样我就不必重新发明轮子。
任何指针都非常感谢。
tcp - 为什么主动关闭方需要TIME_WAIT状态,而被动关闭方不需要?
为什么主动关闭方需要TIME_WAIT状态,而被动关闭方不需要?我认为网络错误会影响双方,为什么只有主动关闭方需要等待?
我认为在连接关闭后被动方也可以收到坏包。
c++ - 从双方关闭 TCP 套接字使套接字保持活动状态
我已经使用 C 在 Linux 上创建了一个 TCP 套接字。 Clientconnect()
的到 server 和 serveraccept()
的它。当客户端请求已被服务 - 或发生超时 - 我希望该套接字完全关闭。
但是,尽管双方都调用了该函数,但我在终端中看到套接字在该状态下close()
还存活了几分钟。TIME_WAIT
问题是,我怎样才能完全杀死它?
请记住,我不需要与 Google 搜索时看到的任何握手FIN
和ACK
标志。
编辑:我看过这个避免 TIME_WAIT线程,但它已经 9 岁了,这就是我不完全信任它的原因。
还有,我要实现的通信是本地主机中的进程间通信,必须能够每秒打开和关闭最多100个连接。这就是为什么,我不需要任何握手。而且我不希望套接字保持在 TIME_WAIT 状态一分钟,因为操作系统充满了套接字并且性能显着下降。
编辑 2:最后我使用了 SO_REUSEPORT 标志并且没有延迟尝试打开新连接,如果操作系统已经填满......
UDP 套接字不满足我程序的其他规范...
tcp - TIME-WAIT 连接拒绝接受新的 SYN,即使它有更大的 ISN
根据this SO post Can a TCP port be re-used before TIME-WAIT expires?, 如果新的 SYN 数据包具有较大的 ISN,则可以重用 TIME-WAIT。
但是,如果它的 ISN 大于旧连接,则以下 SYN 失败事件。
python-3.x - 异步关闭连接使连接处于 TIME_WAIT 状态
嗨,我有一个脚本可以保持我设备的端口状态,这是简化版本。
当连接成功(设备存在)时,我关闭连接,连接状态变为 TIME_WAIT。准时此连接起球并达到操作系统允许的最大连接(如果我记得的话)
知道我应该修复哪个部分,例如,我使用端口 53,但在实际应用程序中,我检查多个端口,如 ssh、vnc 等。
我使用 python 3.5.6 在 ubuntu 18.04 上运行脚本
连接一直像这样堆积(“netstat -nput | grep TIME_WAIT”的输出)192.168.1.1 是我的路由器,所以它在检查端口时成功,但留下了很多未关闭的连接。删除连接需要很长时间
python - 如何在“kill PID”后将套接字服务器从“忙碌”状态中删除?
我有一个简单的套接字服务器设置,可以将一些数字发送到 Intranet 中的客户端。server.py
在测试时,我从终端(CTRL+ )停止了脚本,C这后来在我尝试访问同一页面时导致 Safari 中的服务器繁忙错误。
我看到了这个serverfault 问题但问题是:
我找不到
/etc/init.d/networking restart
文件。我正在使用 Mac,这是针对 Linux 的。每次我测试我的服务器时,这也是一种矫枉过正。每小时至少10次。在代码中插入选项
SO_REUSEADDR
确实有帮助Address already in use
,但我认为我的服务器已启动但处于忙碌状态。使用此处的答案,我将代码编辑为:
我在我的服务器上进行了哪些更改以消除 Safari 中的此错误?
Safari无法打开“my-ip”页面,因为服务器意外断开了连接。当服务器繁忙时,有时会发生这种情况。等待几分钟,然后重试。
lsof -i:8080
的, 停止脚本后的输出是
我做了kill 11881
然后重新运行代码,但在 Safari 中得到了相同的消息。
的输出netstat -na | grep "8080"
是
当脚本运行时,我什么都没有KeyboardInterrupt
。
Firefox暂时显示该页面,然后显示错误页面
连接被重置
Chrome只显示一个空白页面。
更新:它适用于 python 2.7,但不适用于 3.5。代码的不同之处在于:
在 2.7 和
在 3.5 中
c
是
休息都是一样的。
sockets - 为什么 apache SocketConfig 有 setSoReuseAddress() 方法?
我正在创建 org.apache.http.config.SocketConfig 类来配置我的 HttpClient,
在 org.apache.http.config.SocketConfig api 文档中,
isSoReuseAddress() 的描述说,“确定新创建的套接字的 SocketOptions.SO_REUSEADDR 参数的默认值”
据我所知,so_reuseadd 是服务器端 time_wait 套接字重用选项,
但是 apache HttpClient 是 http 客户端,为什么存在这种方法?