监控time_wait状态tcp/ip连接
> netstat -an | findstr "TIME_WAIT"
如果监控此值发现量比较大,且有类似socketException异常,tps不稳定。原因可能是请求多,tcp连接释放慢导致连接不够用。解决方法是减少连接释放时间。修改注册表中/tcpip/Parameters中,TcpTimedWaitDelay值、maxuserPort表示最大的连接数。
> netstat -an | find "TIME_WAIT" /C
统计tcp连接数量
>netstat -an | find "TCP" /C
查看1099端口是否被占用
> netstat -ano | findstr "1099"
> tasklist | findstr "1099"
如何查看进程、查看线程
工具1:使用window自带命令pslist
首先确认系统是否安装了pslist命令程序,如果命令不识别即没有安装,则上微软官方网址http://technet.microsoft.com/en-us/sysinternals/bb896682.aspx下载,下载完将其解压到C:\Windows\System32路径下即可使用。
在cmd命令窗口中执行命令:pslist -dmx 9272,该命令的作用是罗列属于9272进程的线程信息。
工具2:进程线程信息分析Process Explorer工具(ProcessThreadsView)
一般在windows下只能查看进程的CPU占用率,想要查看线程的CPU占用率可以通过该工具。下载地址是:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
TaskInfo for windows ,使用该工具定位线程占用CPU高的问题就很方便,通过该工具可以观察到进程中所有线程的运行细节,当通过该工具发现某个线程占用CPU异常时,可以记录下来它的“Thread ID”,然后再到线程堆栈中搜索 nid=xxx 的对应线程。
如何在windows下查找java应用占用CPU过高 有详细示例及分析过程