【Linux】Too many open files

ZA 的BOSS 最近出现Too many open files 异常,这个异常一般是由于打开文件数过多引起, 最常见原因是某些连接一致未关闭

记录一些排查用到的指令

查看每个用户最大允许打开文件数量

ulimit -a

[root@haiwai ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 22610
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 22610
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
 
临时处理方法: 调整打开文件数大小 
[root@haiwai ~]# ulimit -n 2048
[root@haiwai ~]# 
[root@haiwai ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 22610
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2048
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 22610
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@haiwai ~]# 
 

其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024

 
查看某一个进程打开文件数 
 
[root@haiwai ~]# lsof -p [PID] |wc -l
例如: 
[root@haiwai ~]# lsof -p 25102 |wc -l
200
[root@haiwai ~]# 
 
 
查看8080端口连接 和9090 端口连接
[root@haiwai ~]# netstat -nat|grep -i "8080"|wc -l
1
netstat -an会打印系统当前网络链接状态,而grep -i "8080"是用来提取与8080端口有关的连接的,wc -l进行连接数统计。
查看连接IP等详情
[root@haiwai ~]#  netstat -an |grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN      
tcp        0      1 ::ffff:192.168.20.60:13086  ::ffff:10.150.6.62:8080     SYN_SENT    
tcp        0      0 ::ffff:192.168.20.60:8080   ::ffff:192.168.20.174:52900 ESTABLISHED 
tcp        0      1 ::ffff:192.168.20.60:13087  ::ffff:10.150.6.62:8080     SYN_SENT  
 
查看所有已经建立的连接 
netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。
[root@haiwai ~]# netstat -na|grep ESTABLISHED
tcp        0      0 192.168.20.60:22            192.168.7.189:3974          ESTABLISHED 
tcp        0     48 192.168.20.60:22            192.168.20.174:58644        ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:39923  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:21637  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:49400  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:44992  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:1521   ::ffff:192.168.7.41:51609   ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:28370  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:1521   ::ffff:192.168.7.41:51608   ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:1521   ::ffff:192.168.7.41:49907   ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:48748  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:1521   ::ffff:192.168.20.174:49989 ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:27656  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:31186  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:30680  ::ffff:192.168.20.155:1521  ESTABLISHED 
tcp        0      0 ::ffff:192.168.20.60:22216  ::ffff:192.168.20.155:1521  ESTABLISHED 
 
 
 
 
 
 
 
 
 
posted @ 2016-06-02 18:07  不及格的飞鱼  阅读(422)  评论(0编辑  收藏  举报