如何根据进程号查找端口号

如何根据进程号查找端口号,第1张

如何通过连接的端口找出进程

公司的缓存系统这几天出现问题,连接数超过了2048的限制,导致应用停止工作。我们需要确定哪个应用服务器有更多的连接和哪个进程。假设缓存服务器的端口号是11111,IP地址已经被字母代替。具体方法如下:

1。找出应用服务器和缓存服务器之间的连接数

#netstat–an|grep11111检查缓存服务器上每个应用服务器的连接数,确定IP为xx.xx.xa的应用具有最多的连接数。

2。找出连接到缓存服务器的应用系统的端口号

#netstat–an|grep11111在应用服务器上查找连接到缓存服务器的应用端口号

TCP00xx.xx.xx.xa.52878xx.xx.xx.XB.11111已建立

TCP00xx.xx.xx.xa.52968xx.xx.xx.XB.11111已建立

TCP00xx.xx.xx.xa.52952xx.xx.xx.XB.11111已建立

TCP00xx.xx.xx.xa.52876xx.xx.xx.XB.11111已建立

TCP00xx.xx.xx.xa.52852xx.xx.xx.XB.11111已建立

……

连接缓存系统的端口号是52878、52968、52962、52876、52852、……这些端口号非常多,有上千条记录。

#netstat–an|grep11111|awk“{print$4}”>;/tmp/netlog.txt提取这些端口号。

xx.xx.xx.xa.52878

xx.xx.xx.xa.52968

xx.xx.xx.xa.52952

xx.xx.xx.xa.52876

xx.xx.xx.xa.52852

……

#vi/tmp/netlog.txt使用vi编辑器打开/tmp/netlog.txt文件并删除IP地址。

:1美元/个。\{12\}//g在非编辑模式下输入,前12个字符的IP替换为空。

编辑后,netlog.txt文件中只剩下端口号。

3。找出与端口号对应的进程和实例

#vi/tmp/netlog.sh逐行扫描netlog.txt文件的端口号,执行lsof命令。

以$(cat/tmp/netlog.txt)为单位的行

lsof–Fp-I:${line}

完成的

#/tmp/netlog.sh>;/tmp/netout.txt来执行脚本文件并输出。

#cat/tmp/netout.txt检查这个文件,找到端口对应的进程号。

P2997

P2997

P2997

P1887

P2997

……

2997和1887是进程号,2997频率高,连接到这个进程的缓存服务器数量多。

#PS–ef|grep2997查看与该进程对应的程序或实例。

4。验证

#kill-92997杀死进程,验证连接数是否下降,确保连接数下降很多。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/782542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存