关于出现too many open files异常

Q:什么是最大文件数?

A:This number indicates the maximum number of files normal users (i.e. non-root) can have open in a single session

  这个是来自redhad的解释,意思就是普通用户在一个单一进程中所能打开的最多文件数

Q:如何查看当前系统配置的最大文件数

A:用ulimit-a  结果如下:其中红色部分为最大文件数

[root@sanp_244 ~]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 147584
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 60000
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) 147584
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@sanp_244 ~]# ulimit -a

core file size          (blocks, -c) unlimited

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 147584

max locked memory       (kbytes, -l) 32

max memory size         (kbytes, -m) unlimited

open files                      (-n) 60000

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) 147584

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

Q:如何修改这个数?

A:在root账户下执行ulimit -n 65535,执行完后通过ulimit-a 发现文件最大数已经变成65535

Q:如何查看某个进程已经使用的文件数?

A: lsof -p 29165 |wc -l   其中29165是你要输入的进程号,输出结果为一个数字

补充:lsof 就是“list open files” 的意思,不是每个linux系统都有装lsof这个程序,而且这个一定要在root账户下才能使用,因为要访问内核信息

原文地址:https://www.cnblogs.com/sunwei2012/p/1976989.html