忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 430 | 回复: 4

[网络管理] centos上出现大量ESTABLISHED状态的文件句柄,百思不得其解啊 [复制链接]

论坛徽章:
0
发表于 2017-07-07 18:58 |显示全部楼层
本帖最后由 minimu 于 2017-07-07 19:23 编辑

1、环境:  服务器端:centos7,一个Socket服务程序
客户端:用模拟多个Socket请求的客户端程序

2、现象:
(1)服务器端刚启动的时候,句柄正常:
[root@localhost app]# lsof -n | wc -l
6298

(2)如果客户端不发送程序,句柄也基本没有波动,几个上下波动

(3)一旦客户端发送连接请求并发送数据(每隔30S发送一次),文件句柄就开始暴涨
[root@localhost app]# lsof -n | wc -l
38139
根据观察,客户端每1000个socket连接,句柄会增加3万以上个;尝试将客户端的连接数增加到6000的时候,句柄超过了21万个。但是服务器状态正常的,所有客户端的响应时间也在3ms内。

(4)可打开的文件句柄最大值:6000连接的时候已经用掉21W+了
[root@localhost gps]# cat /proc/sys/fs/file-max
1048576


3、分析:
(1)查看网络连接数量,正常
[root@localhost app]# netstat -ant | wc -l

1007

(2)指定端口网络连接,正常
[root@localhost app]# netstat -ant | grep ":10032" | wc -l
1001

(3)查看句柄,明显异常,2235就是Socket服务端的PID
[root@localhost app]# lsof -n | awk '{print $2}' | sort -n | uniq -c | sort -nr | more
  33046 2235
   3180 1527
    420 966

(4)导出lsof的数据打开看了下,几万个句斌基本都是ESTABLISHED状态的socket连接,类似下面【来自另一次测试的导出,忽略PID不一样】:
java      2345 2346    root 1288u     IPv4              54615        0t0        TCP 192.168.1.200:10032->192.168.1.4:55505 (ESTABLISHED)
java      2345 2346    root 1289u     IPv4              54616        0t0        TCP 192.168.1.200:10032->192.168.1.4:55518 (ESTABLISHED)
java      2345 2346    root  128u     IPv4              52029        0t0        TCP 192.168.1.200:10032->192.168.1.4:56815 (ESTABLISHED)
java      2345 2346    root 1290u     IPv4              54617        0t0        TCP 192.168.1.200:10032->192.168.1.4:55532 (ESTABLISHED)
java      2345 2346    root 1291u     IPv4              54618        0t0        TCP 192.168.1.200:10032->192.168.1.4:55545 (ESTABLISHED)

(5)担心是IPv6或防火墙的问题,把IPv6和防火墙全部禁用了,问题依旧

(6)担心是后续应用造成的,把后续的代码全部屏蔽,只留Socket的接收代码,问题依旧

4、对比测试
把Socket服务端的程序放在win10和mac上跑,句柄都是正常的

5、求助?为什么会有这种状况?是centos7的某个配置或初始化参数的原因?或者其他原因?

论坛徽章:
0
发表于 2017-07-07 19:00 |显示全部楼层
导出的lsof文件是另外一次测试导出的,因此PID文件不一样,问题是一样的。特别说明下

论坛徽章:
0
发表于 2017-07-07 20:01 |显示全部楼层
centos是不是有什么设置啊,fd在里面重复出现,基本略大于socket连接数量的地方,相同的fd就会出现

论坛徽章:
209
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之全北现代
日期:2016-05-11 17:05:27操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2017-07-09 09:36 |显示全部楼层
shell@mh20170707:~$  lsof -n | wc -l
39227
shell@mh20170707:~$
shell@mh20170707:~$
shell@mh20170707:~$ netstat -ant | wc -l
11
shell@mh20170707:~$
shell@mh20170707:~$ lsof -n | wc -l
23615
shell@mh20170707:~$
shell@mh20170707:~$


我关闭一个chrome浏览器,数据变化吓人

论坛徽章:
0
发表于 2017-07-09 23:01 |显示全部楼层
action08 发表于 2017-07-09 09:36
shell@mh20170707:~$  lsof -n | wc -l
39227
shell@mh20170707:~$

chrome一直是大型软件
无论是吃内存还是其他资源

不知道是不是entos有什么机制或一些处理逻辑的变更

PS:我的centos是最小按照
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票6.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP