标签: netstat

由于套接字缓冲区低/溢出,大量数据包被修剪和数据包崩溃

我已经设置了一台测试机器(在 linode 2048 机器上的 debian Squeeze 2.6.32)与返回大块 json 的 api 交互。它以 3000/分钟异步调用 API,API 返回 ~450kb 的有效负载。盒子上还有一个 http 服务器来显示调用结果。

在执行 netstat -s 时(正常运行时间为 20 天):

 254329 packets pruned from receive queue because of socket buffer overrun
 50678438 packets collapsed in receive queue due to low socket buffer
Run Code Online (Sandbox Code Playgroud)

这对我来说听起来不太好,所以我按照这些教程来调整 TCP 参数:

http://fasterdata.es.net/fasterdata/host-tuning/linux/test-measurement-host-tuning/

http://www.acc.umu.se/~maswan/linux-netperf.txt

但它似乎没有帮助。

关于套接字缓冲区的任何建议/教程/解释可能有助于理解和解决问题?

谢谢

netstat tcp

9
推荐指数
1
解决办法
2万
查看次数

避免 TIME_WAIT 连接

当我使用 netstat 命令时,它显示..

tcp 0 0 本地主机:18056 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16683 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16701 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16888 本地主机:mysql TIME_WAIT
本地主机WAIT2TIME_WAIT 本地主机WAIT2TIME
tcp 0 0 本地主机:17725 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17682 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17414 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17606 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17737 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16632 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16825 本地主机:mysql TIME_WAIT 本地主机WAIT 时域主机WAIT 0 0 0 本地主机:mysql TIME_WAIT
本地主机时
tcp …

netstat time-wait

8
推荐指数
1
解决办法
10万
查看次数

太多已建立的连接保持打开状态

我有一个(可能很旧)CentOS 4.5 服务器,里面有一个自定义的 Java 应用程序。

我发现该应用程序在运行一段时间后崩溃,并发现它正在处理 1024 个连接并在它死机时尝试再打开一个套接字。

事实上,如果我检查ulimit -n我可以确认它是 1024,所以应用程序正在关闭,因为它没有更多可用的文件描述符。

令我困扰的是,有数百个明显不活动的连接,处于“已建立关闭”状态,全部来自相对较少的 IP(大约 200 个),并且随着时间的推移和客户端连接,它们往往会加起来,很多就像我看到的这些netstat -nato

tcp        0      0 ::ffff:10.39.151.20:10000   ::ffff:78.152.97.98:12059   ESTABLISHED off (0.00/0/0)
tcp        0      0 ::ffff:10.39.151.20:10000   ::ffff:78.152.97.98:49179   ESTABLISHED off (0.00/0/0)
tcp        0      0 ::ffff:10.39.151.20:10000   ::ffff:78.152.97.42:45907   ESTABLISHED off (0.00/0/0)
Run Code Online (Sandbox Code Playgroud)

我知道这不是 DOS 攻击,连接是合法的,但是在客户端连接并与服务器进行短数据交换后似乎没有关闭......而且速度很慢,因为它们是由 200 个客户端生成的(计数不同的IP)..

我应该调查一些奇怪的应用程序错误(可能在 jre 1.6 上),还是深入研究 CentOS 网络配置?我不知道还有什么可看的..

提前致谢,任何提示表示赞赏!

networking centos netstat connections

8
推荐指数
1
解决办法
3万
查看次数

在没有 HttpStubStatusModule 的情况下检查 nginx 活动连接

我们想在没有HttpStubStatusModule安装模块的情况下检查活动连接的数量。

什么是等效的 Linux 命令?

作为基线,我们在HttpStubStatusModule首先安装的机器上进行测试,例如

Active connections: 6146 <-- from HttpStubStatusModule

# netstat -an | grep :80 | wc -l
1266

# netstat -an | grep :443 | wc -l
25082
Run Code Online (Sandbox Code Playgroud)

在我看来,上述 netstat 都没有给我正确的数字。

任何的想法?

networking nginx netstat linux-networking

8
推荐指数
1
解决办法
2万
查看次数

获取 TCP 建立的连接数

在 Linux 服务器上可以使用,netstat -tan | grep ESTABLISHED| wc -l但在带有watch -n1.

如果服务器不是很忙或者监控间隔足够大,这种方法可以正常工作。但是可以推荐什么作为高负载服务器的替代方案?

linux monitoring netstat tcp

8
推荐指数
2
解决办法
6587
查看次数

运行 lsof -i 显示 CLOSE_WAIT 中有很多连接?我应该担心吗

所以我lsof -i | wc -l定期运行,它告诉我在 420 行中,有 240 到 255 行处于CLOSE_WAIT状态。TCP连接如何进入这种状态?

我应该担心吗,我应该如何解决它?

linux ubuntu tcpip netstat lsof

7
推荐指数
1
解决办法
4万
查看次数

在 netstat 中显示日期/时间

是否可以让 netstat 显示建立连接的日期/时间?这些信息甚至存储在 Linux 中的任何地方吗?

linux netstat

7
推荐指数
3
解决办法
3万
查看次数

超时期限到期后,TIME_WAIT 连接未被清除

我正在对我的一台服务器进行压力测试,它使用恒定的新网络连接流击中它,tcp_fin_timeout设置为 60,因此如果我发送恒定流,例如每秒 100 个请求,我希望看到滚动平均值6000 (60 * 100) 个连接处于一个TIME_WAIT状态,这种情况正在发生,但是查看netstat(使用 -o)查看计时器,我看到如下连接:

TIME_WAIT   timewait (0.00/0/0)
Run Code Online (Sandbox Code Playgroud)

他们的超时已过期但连接仍然存在,然后我最终用完了连接。有谁知道为什么这些连接没有得到清理?如果我停止创建新连接,它们最终会消失,但是当我不断创建新连接时,它们不会,似乎内核没有机会清理它们?我是否需要设置一些其他配置选项以在连接过期后立即删除连接?

服务器正在运行 Ubuntu,而我的 Web 服务器是 nginx。它还有带有连接跟踪的 iptables,不确定这是否会导致这些TIME_WAIT连接继续存在。

谢谢马克。

networking linux performance netstat tcp

7
推荐指数
1
解决办法
1万
查看次数

Microsoft-HTTPAPI/2.0 使用的端口 80

端口被一些我不知道的奇怪进程使用已经有好几天了
最初我认为它与 SQL Server 相关。我尝试停止所有从 SQL 启动的服务 :)。
但它仍然是一样的。为了确定问题,我什至运行了 cports。

错误 这很奇怪!
我没有运行任何其他使用端口 80(Teamviewer 或 Skype)的服务。

这是我运行netsh http show urlacl 时得到的

URL Reservations: 
----------------- 

Reserved URL            : http://*:2869/ 
    User: NT AUTHORITY\LOCAL SERVICE
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;LS) 

Reserved URL            : http://+:80/Temporary_Listen_Addresses/ 
    User: \Everyone
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;WD) 

Reserved URL            : http://+:80/116B50EB-ECE2-41ac-8429-9F9E963361B7/ 
    User: NT AUTHORITY\NETWORK SERVICE
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;NS) 

Reserved URL            : https://+:443/C574AC30-5794-4AEE-B1BB-6651C5315029/ 
    User: NT AUTHORITY\NETWORK SERVICE
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;NS) 

Reserved …
Run Code Online (Sandbox Code Playgroud)

windows iis-7 port netstat

7
推荐指数
1
解决办法
8091
查看次数

UDP 端口似乎正在使用中,但未在 netstat 或 TCPView 中显示

我遇到了一些我不明白的奇怪行为。我正在 Windows 2003 Server 上安装软件。该软件需要绑定到特定的 UDP 端口和所有 TCP 地址才能侦听请求。我似乎能够绑定到我选择的几个端口,但不能绑定到其他端口;具体来说,我无法绑定到我需要的一个端口,即 5001。其他推测为空闲的端口(如 5002、5010)也会失败。我的第一个猜测是“它正在被另一个程序使用”,但它没有显示在 netstat 或 TCPView(来自 sysinternals)中,所以我不知道该怎么做。程序收到套接字错误 10048(地址已在使用中)。

这些是我用来尝试查找“违规”程序的示例命令:

c:\>netstat -a -v -n -o -p udp

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  UDP    0.0.0.0:445            *:*                                    4
  UDP    0.0.0.0:500            *:*                                    512
  UDP    0.0.0.0:1434           *:*                                    1980
  UDP    0.0.0.0:4500           *:*                                    512
  UDP    0.0.0.0:5000           *:*                                    5920
  UDP    0.0.0.0:5500           *:*                                    5288
  UDP    127.0.0.1:123          *:*                                    856
  UDP    127.0.0.1:1314         *:*                                    4376
  UDP    172.20.1.10:123        *:*                                    856
  UDP    172.20.1.10:137        *:*                                    4
  UDP    172.20.1.10:138        *:*                                    4

(No UDP port …
Run Code Online (Sandbox Code Playgroud)

networking windows netstat udp

6
推荐指数
1
解决办法
8288
查看次数