Windows查看TCP连接数

https://social.technet.microsoft.com/Forums/windowsserver/zh-CN/52a5f198-976c-4432-8322-6a28035d3745/tcp3683025509259682002610?forum=winserver8zhcn

线上服务器遇到几次相同现象的问题:可以正常远程访问服务器,资源消耗不多,但是网页或是socket无法连接,连接错误是ERR_CONNECTION_REFUSED,也就是服务器拒绝了。首先可以确认不是ddos流量攻击,因为流量攻击肯定远程也连不上。导致这个问题的绝大部分原因是服务器的TCP连接被占满了。从资源管理器中看到的是10,满的,全绿,并不是表示有10个链接,而是表示量级是10级

怎么占满的呢?我们遇到了这几个情况:

  • 客户端有bug,在断线重连的时候有一个死循环不断请求连接,服务器重启的时候很多客户端同时连接,把TCP占满了

  • php后台,apache环境,配置有问题,导致php大量请求没有释放。后来改成nginx解决的

  • cc攻击,大量请求访问网站,导致TCP占满

如果遇到了这个问题,如何查看呢,打开Windows Task Manager(任务管理器)->Performance(性能)->Resource Monitor(资源监视器),在这个页面会看到TCP连接数的图表,在右边,正常情况是没有占满的,如果出现问题会显示满了,变成0-10,看不到现在是多少,这时候可以在Run(运行)中输入perfmon.msc打开Performance Monitor(性能监视器),在菜单栏,点击加号,选择IPv4(如果你的程序是IPv6,那就选择IPv6),添加进来,就可以具体看到TCP的连接数和曲线,也可以看到是哪个进程占用的多。

posted @ 2020-07-21 19:30  秋来叶黄  阅读(16289)  评论(0编辑  收藏  举报