Too many open files故障处理

2252人浏览 / 0人评论

一、巡检发现mess日志报错

 NetworkManager[1553]: <warn> error saving timestamp: Failed to create file '/var/lib/NetworkManager/timestamps.W6DMT0': Too many open files
 NetworkManager[1553]: <warn> error parsing timestamps file '/var/lib/NetworkManager/timestamps': Too many open files
二、查看进程

[root@weixin2 logs]# ps -ef|grep NetworkManager
root      1553     1  0 Mar06 ?        00:00:33 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
 

查看单独进程的limits

[root@weixin2 logs]# cat /proc/1553/limits 
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            10485760             unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             31906                31906                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       31906                31906                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us    

查看系统的limits

[root@weixin2 logs]# 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) 31906
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
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) 31906
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited 

查看进程占用的句柄数

[root@weixin2 logs]# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
   1065 1553
    163 22801
     88 20358
     68 30547
     68 30217
     63 30544
     63 30215
     63 11495
     62 30570
     62 30239
 

很明显 1553 进程NetworkManager超出了默认的句柄值。

 

查看进程都用了哪些句柄,发现使用的句柄后面都是delete了。

[root@weixin2 logs]# lsof |grep 1553

NetworkMa  1553      root 1022u      REG              252,1          0     530512 /var/lib/NetworkManager/timestamps.BSL3P0 (deleted)
NetworkMa  1553      root 1023u      REG              252,1          0     530513 /var/lib/NetworkManager/timestamps.ONK3P0 (deleted)
 

 直接重启服务,释放delete句柄

[root@weixin2 logs]# service NetworkManager restart 

 恢复正常。

当然也可以调大文件打开数。但是一个网卡管理服务就没必要调啦, 直接重启释放下就行。

全部评论