|
|
1
55
每个插座
插座还连接了那个特定的
|
|
|
2
12
迄今为止的发现: 即使服务器使用系统调用关闭了套接字,如果它进入时间等待状态,它的文件描述符也不会被释放。当时间等待状态消失后(即2*msl秒后),将释放文件描述符。因此,太多的等待时间可能会导致服务器进程中出现“打开的文件太多”错误。 我相信O/S TCP/IP堆栈是用适当的数据结构(例如哈希表)实现的,因此总等待时间不应影响O/S TCP/IP堆栈的性能。只有在等待状态下拥有套接字的进程(服务器)才会受到影响。 |
|
|
3
12
每个连接都由一个元组(服务器IP、服务器端口、客户端IP、客户端端口)标识。至关重要的是,
与
|
|
|
4
2
如果从许多不同的客户机IP到服务器IP有很多连接,那么可能会遇到连接跟踪表的限制。 检查:
在所有SRC IP/端口和DEST IP/端口元组中,跟踪表中只能有net.ipv4.netfilter.ip_conntrack_max。如果达到此限制,您将在日志中看到一条消息“nf_contrack:table full,dropping packet.”,并且在跟踪表中再次有空间之前,服务器将不会接受新的传入连接。 这种限制可能会在短暂的端口耗尽之前很久就影响到您。 |
|
|
5
0
在我的场景中,我运行了一个脚本,它重复调度文件,我的产品做了一些计算,并将响应发送到客户机IE客户机正在进行一个重复的HTTP调用,以获取每个文件的响应。当我的服务器中约有150个文件被调度时,套接字端口进入“等待”状态,并在客户机中引发一个异常,打开一个HTTP连接。离子IE
结果是我的应用程序挂起了。我不知道线程是否已进入等待状态或发生了什么,但我需要终止所有进程或重新启动应用程序以使其再次工作。 我试着把等待时间缩短到30秒,因为默认情况下它是240秒,但它不起作用。 因此,总体影响至关重要,因为它使我的应用程序没有响应 |
|
|
6
-1
看起来服务器可能只是用完了分配给传入连接的端口(在现有的超时等待期间),这是DOS攻击的一种情况。 |