lsof 问题

teemai 2017-08-20 11:21:24
使用lsof查看java 进程(web 服务器)打开的文件数,发现好多ESTABLISHED的TCP连接不释放,而且SIZE为0t0,并且数量越来越多,怎么去定位这个问题呢?

以下是我分析过程:


ps -ef | grep java //查看java进程id
lsof -n | grep 27343 -c// 查看java打开的句柄数量
lsof -p 27343 // 查看详细打开的句柄

[root@iZ2572449s4Z ~]# lsof -n | grep 27343 -c
2136

然后每隔2-3个小时执行lsof -n | grep 27343 -c,发现数量一直在增长:

2017-08-10 12:38:37 ——> 2136
2017-08-10 14:38:37 ——> 3489
2017-08-10 18:38:37 ——> 3691
2017-08-10 18:51:37 ——> 3752
2017-08-10 20:47:37 ——> 4229
2017-08-10 22:12:37 ——> 4508
2017-08-11 18:25:37 ——> 7899
2017-08-12 11:20:00 ——> 10465


类似这样的:


这之前我已经把系统默认的连接数1024改成了65535:

[root@iZ2572449s4Z ~]# ulimit -n
65535


然后大概5-6天时间,lsof -n | grep 27343 -c的数量就达到65535上限,web服务器由于不能打开新的TCP连接就无法提供客户端访问页面,页面就是个空白页并且一直在加载中这样。就只能把web服务器(java进程)重启,所有连接强制释放后,维持5-6天连接数又达到65535上限。

为了分析这些连接的IP地址,我特地统计了一下,有很多是同一个IP,并且90%的IP都不是我客户所在地区的IP地址(我有点怀疑是恶意攻击,但是我也不是很确定)。现在不知道怎么继续往下定位问题了,任何建议和提示都将十分感谢,谢谢各位。
前面是连接的个数,后面是连接的IP地址。

3, 122.192.13.192
58, 101.226.102.139
3, 122.192.12.64
3, 49.92.118.42
3, 122.192.12.62
3, 49.92.118.46
43, 101.226.102.140
55, 101.226.102.141
3, 49.92.103.66
2, 101.90.127.161
2, 122.192.14.28
6, 122.192.13.185
2, 122.192.12.252
3, 122.192.12.254
3, 122.192.12.71
4, 112.86.84.247
2, 122.192.13.176
3, 49.92.194.115
3, 122.192.13.177
6, 122.192.13.178
2, 222.93.49.223
2, 58.219.202.6
5, 122.192.14.39
1, 112.117.86.36
3, 36.23.51.152
3, 122.192.14.43
2, 122.192.14.44
3, 122.192.14.48
2, 114.216.124.122
3, 49.92.76.195
3, 122.192.12.43
3, 122.192.14.40
2, 122.192.12.41
2, 49.92.151.212
2, 183.208.193.73
2, 122.192.12.48
3, 49.95.215.178
21, 140.207.54.187
3, 122.192.15.184
2, 49.92.193.90
18, 140.207.54.180
3, 117.136.66.81
1, 180.107.192.164
3, 49.92.178.157
4, 49.92.169.213
2, 122.192.15.178
18, 140.207.54.199
20, 140.207.54.198
3, 122.192.15.173
15, 140.207.54.197
2, 180.103.244.86
3, 58.211.125.50
3, 117.136.68.19
8, 49.64.44.223
2, 223.64.78.51
14, 117.136.68.18
1, 121.228.76.116
7, 117.136.68.17
2, 121.224.51.191
3, 49.95.190.19
3, 117.136.68.21
2, 113.57.244.212
1, 49.85.219.2
9, 117.136.68.22
9, 117.136.68.20
3, 117.136.68.25
4, 49.84.204.122
2, 117.136.68.26
5, 117.136.68.23
7, 117.136.68.24
3, 117.136.66.63
1, 121.228.41.98
3, 122.192.14.209
3, 49.95.184.139
2, 180.107.142.53
1, 49.92.164.175
3, 49.95.167.117
3, 112.96.170.212
10, 117.136.68.10
8, 117.136.68.11


我用的web服务器为play 1.2.5,没有Apache、Nginx。
...全文
280 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
verphan 2017-08-20
  • 打赏
  • 举报
回复
不懂帮顶

81,087

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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