soket句柄未释放的问题(netstat 与 lsof结果不一致)

wanggk114 2014-11-04 02:08:18
系统:AIX

最近有程序报errno=24,文件句柄占用超限制。
用lsof查,发现大部分句柄跟socket句柄有关,36145是一个服务端的服务端口:

datax%lsof -p 184684 |grep 36145| wc -l
65516

new_datax 184684 datax *102u IPv4 0xf10006001d2b6290 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *103u IPv4 0xf10006002d547290 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *104u IPv4 0xf10006001f667290 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *105u IPv4 0xf1000600315a8a90 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *106u IPv4 0xf1000600300bd290 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *107u IPv4 0xf100060030069290 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *108u IPv4 0xf10006003ce20290 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145
new_datax 184684 datax *109u IPv4 0xf10006003ce9ea90 0t0 TCP rhjf3_perip:*->rhjf2_svc:36145

但nestat看连接数并没有那么多
datax%netstat -na|wc -l
785

想请教下,
1)socket句柄数不能用netstat看吗?
2)什么情况下连接不存在了,句柄还会占用?
3)还有一点不太明白:lsof结果中rhjf3_perip:*->rhjf2_svc:36145 _perip和_svc是什么意思?
望高手指点,多谢大家~~

...全文
932 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanggk114 2015-01-14
  • 打赏
  • 举报
回复
引用 4 楼 xiayaazinabubu 的回复:
是不是系统默认的最大句柄数太少了,默认好像确认挺少的
不是设置的太小,而是确实打开占用的太多了,光一个进程就占了6W多个,问题是为什么会占用这么多?
xiayaazinabubu 2015-01-14
  • 打赏
  • 举报
回复
是不是系统默认的最大句柄数太少了,默认好像确认挺少的
wanggk114 2015-01-14
  • 打赏
  • 举报
回复
还有大神能帮忙分析分析吗
wanggk114 2014-11-06
  • 打赏
  • 举报
回复
引用 1 楼 erhou134 的回复:
netstat 是看网络的,可以看具体链接数,跟句柄数没有直接联系。。 进程没结束前,连续调用socket没close... 机子上没这个命令不知道。。
查了代码,是有调close的。 有些现象不是太明了,如果lsof的结果中的“TCP rhjf3_perip:*->rhjf2_svc:36145”(这里的*表示所有端口?这个*号不理解) 正常的socket连接句柄是客户端和服务端都有具体的端口号和状态的,如 Serv 37469 test 3u IPv4 233421 0t0 TCP *:4200 (LISTEN) Serv 37469 test 4u IPv4 398823 0t0 TCP localhost:4200->localhost:33791 (ESTABLISHED) Client 55557 test 3u IPv4 398822 0t0 TCP localhost:33791->localhost:4200 (ESTABLISHED) Clien 55557 test 3u IPv4 398822 0t0 TCP localhost:33791->localhost:4200 (CLOSE_WAIT)-----close之前
空的 2014-11-05
  • 打赏
  • 举报
回复
netstat 是看网络的,可以看具体链接数,跟句柄数没有直接联系。。 进程没结束前,连续调用socket没close... 机子上没这个命令不知道。。

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧