问题标签 [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.
c# - 在处理完成之前显示动态时间的等待表格
我在 stackoverflow、Code Project、C# Corner 和许多其他论坛的许多线程中进行了搜索。我的问题被克隆了。但我无法找到任何令人满意的解决方案。我想展示一个等待表单,当有某种后台工作时会出现。后台工作可能包括打开表单、填充网格视图等批处理和处理命令。
现在这里有一个问题,取决于机器处理的动态时间应该如何形成等待。如果应用程序在最新的快速机器(即 i7、i5 等)上运行,则等待表单出现的时间应该更少,就像在 Pentium 3 上一样,4 它应该出现很长时间,直到处理完成。我正在开发 c# Winforms 应用程序。
sockets - 为什么TIME_WAIT中的同一个socket多次出现?
我已经阅读了有关 TIME_WAIT 中套接字的其他线程,但我显然仍然缺少一些东西。
下面是来自“netstat -an”的几行代码。怎么会陷入这种境地?如果我理解我发现的描述,我们不应该有超过一个套接字 63444 的实例......但是在列为“LISTEN”的那个之后,大约有 50 个单独的套接字连接,一端在 63444,全部在“TIME_WAIT” . 这怎么会发生,我该如何解决?
php - 需要解释:PHP5-FPM 的 TIME_WAIT 保持打开 60 秒
前几天我遇到了一个问题,我的 nginx Web 服务器停止处理 php 脚本并给出 504 Gateway Timeout。我在端口 9000 上设置了 php5-fpm。
当我运行时,netstat | grep 9000
我得到了以下结果,数百次使用不同的端口号
他们似乎根本没有清理干净。我怀疑我的服务器可能有很多流量,或者某个地方的脚本不好。我从服务器关闭了一堆低优先级站点(我有大约 10 个不同的 nginx 站点配置文件正在运行)并且事情再次出现,但是对于 php 页面的每个请求,netstat 报告其中 9000->37XXX 端口中的 1 个打开并且即使页面几乎立即返回到客户端,它也会保持打开 60 秒。
它保持打开 60 秒有什么原因吗?和/或为什么不重用连接?我有什么配置不正确吗?
我担心如果我的一个站点再次获得大量流量,它会再次占用所有连接,我会再次看到 504 网关超时,如果实际上这只是一个负载问题而不是一个糟糕的 php 脚本。
tcp - TCP 连接永远不会处于已建立状态
我已经从 git 克隆了一个 Spark 项目,我肯定知道它可以正常工作和运行。当我运行程序时,Jetty 服务器会启动,看起来就像在听没有问题。这是控制台:
但是,当我从计算机上的任何浏览器发送请求时,它总是返回空响应。我已经对数据库和所有配置进行了配置,并在另一台计算机上使用相同的数据尝试了相同的配置,并且它可以立即工作。我用 TCPview 查找 TCP 连接状态,我看到连接直接进入 time_wait 状态。由于它不会发生在我测试过的另一台计算机上,我猜测问题不是来自程序或数据库,而是某些原因导致了这种情况,尤其是在我的计算机上。任何意见表示赞赏。谢谢。
sockets - 在 Gatling 中指定套接字选项
在对虚拟 RESTful 服务进行性能测试时,我遇到了ConnectException: Cannot assign requested address
问题,在此处或此处进行了描述,并应用了调整建议- 将临时端口范围增加到 10000-65000,我ulimit -n
的是 64000,我什至启用net.ipv4.tcp_tw_reuse
了net.ipv4.tcp_tw_recycle
- 有关这些的更多信息在这篇优秀的博文中处理繁忙的 Linux 服务器上的 TCP TIME-WAIT 状态。
这仍然没有帮助,我仍然可以每秒最多模拟 10k 个请求(因为在我的测试中每个用户只做一个请求),所以我已经扩展到 4 台和更高版本的 8 台客户端机器。在 4 台机器上,我每台机器可以执行 5k 请求/秒(总共 20k),但在 8 台机器上,我什至无法在这 5k 上运行,所以问题可能出在其他地方。
不过,我想问一下是否有任何选项可以设置SocketOptions
在 gatling 连接上,无论是通过模拟还是通过 gatling.conf - 我想在那里使用SO_REUSEADDR。可以在 gatling.conf 中设置一些选项(连接超时),但我还没有找到这个。
此外,是否有任何文件描述 Gatling 如何共享连接?我希望“用户”获取他们的连接实例或虚拟每个用户打开他的连接的大连接池,但在某处我读到每个用户都有一个连接池(他与谁共享连接,那么?还是这些只是他之前的请求中使用的缓存连接?)。
编辑:所以最终解决方案很简单:.shareConnections
在设置时使用ScenarioBuilder.protocols(...)
. 我曾尝试-Dgatling.core.http.shareConnections
用作命令行 arg(我正在从 maven 插件运行测试),但它不起作用;程序化方法做到了。
dynamics-crm-2011 - 如果在动态 CRM 中通过了计划日期,则发送电子邮件
我需要为图书馆系统编写工作流程。其中工作流程需要在计划的入住日期过后等待 5 天,然后发送电子邮件。我尝试了以下方法,但似乎行不通。
有什么建议我做错了吗?
node.js - TIME_WAIT 在 Solaris 中累积
我已设置tcp_time_wait_interval
为 1000(1 秒)。但即使在关闭连接后,TCP TIME_WAIT 状态也在累积。谁能帮我解决这个问题。
在 LINUX 系统中它工作正常。TIME_WAIT 未累积。所以我希望代码没有问题。
c - 为什么 RST 数据包不需要 TIME_WAIT 状态?
我知道这TIME_WAIT
是为了防止一个连接的延迟段被误解为后续连接的一部分。当连接处于 TIME_WAIT 等待状态时到达的任何段都将被丢弃。
在我的实验中,我看不到TIME_WAIT
客户端何时发送 RST 数据包而不是 FIN 数据包。为什么?
服务器
客户
注意:客户端发送 RST 而不是 FIN,因为它不会在关闭套接字之前读取服务器已经发送的缓冲数据。
linux - 为什么linux重用'time_wait'端口?
据我所知,'time_wait' stat 中的 tcp 端口不能使用。但是,在我的实验中,服务器重用了“time_wait”端口?为什么?
首先,在客户端机器中,输入 command ehco 40000 40001 > /proc/sys/net/ipv4/ip_local_port_range
。因此,最大 TCP 端口数为 2。
服务器代码
客户代码
节目
最多可连接 3 个。我想,最多2个连接。为什么 ?服务器有 2 个 timewait 连接。
环境
服务器配置
客户端配置
重要 的是我也尝试了 ubuntu server 14.04,但得到了相同的结果。
asp-classic - 经典 ASP 中的 Response.Flush 导致 TIME_WAIT 端口
如果您打开一个记录集,然后在记录集仍然打开的情况下将连接用于其他用途,则 Web 服务器会打开一个新端口与数据库通信,然后立即将该端口置于 TIME_WAIT 状态。
我一直在通过该站点解决此问题(通过在重新使用连接之前关闭记录集 - 它有效)但注意到一些奇怪的事情。
当页面上有“Response.Flush”时,无论你做什么,都会导致使用额外的端口,然后进入无用的TIME_WAIT状态。这可能导致严重的端口耗尽情况。
示例代码:
要检查时间等待,您可以运行:
通过 Web 服务器上的命令提示符。假设这是一个测试系统,您应该立即看到从您的 Web 服务器到您的数据库服务器的 time_wait 连接弹出。删除冲洗,这将停止。
谷歌搜索没有帮助 - 接受任何建议。
环境: IIS 7.5、经典 ASP、SQL Server 2008。
编辑:
我也根据评论尝试了这个:
还是同样的问题。使用冲洗,额外的连接,没有,相同的连接。
编辑 2 原来它与数据库无关。如果你只有一个 response.flush,没有别的,这已经导致了一个额外的连接,从 IIS 到客户端,所以我一直在寻找错误的东西。
现在的问题变成了,如果没有response.flush 产生从 IIS 到客户端的额外连接,您能否逃脱惩罚。