共免费分配的文件描述符始终为零 - Ubuntu的LTS 14.04

问题描述:

我有*分配的文件描述符的问题,它总是零!共免费分配的文件描述符始终为零 - Ubuntu的LTS 14.04

例如:

$ cat /proc/sys/fs/file-nr 
    4448 0  1529806 

AFAIK,这意味着以下内容:

4448 is total alocated file descriptors 
0 is total of free alocated file descriptors 
1529806 is the total limit of the system 

除了我设置以下ulimits:

$ 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) 120242 
max locked memory  (kbytes, -l) 64 
max memory size   (kbytes, -m) unlimited 
**open files      (-n) 500000** 
pipe size   (512 bytes, -p) 8 
POSIX message queues  (bytes, -q) 819200 
real-time priority    (-r) 0 
stack size    (kbytes, -s) 8192 
cpu time    (seconds, -t) unlimited 
max user processes    (-u) 120242 
virtual memory   (kbytes, -v) unlimited 
file locks      (-x) unlimited 

系统文件最大:

$ cat /proc/sys/fs/file-max 
1529806 

最大打开文件是Kannel守护进程(bearerboxsmppbox)。一旦打开的文件数量达到限制smppbox正在卡住,只有重新启动它才能提供帮助,这根本不是解决方案。

按照我因特网上发现我明白,有系统中没有*alocated文件描述符的文章。

每个解决方案我试过没有帮助。

我在做什么错了?

需要你的帮助。

预先感谢您。

由于每man page for proc:(重点煤矿)

的/ proc/SYS/FS /文件-NR
这(只读)文件包含三个号码:分配的文件句柄的数量(即,目前打开的文件数量);免费文件句柄的数量;和文件句柄的最大数量(即与/ proc/sys/fs/file-max相同的值)。如果分配的文件句柄数接近最大值,则应考虑增加最大值。在Linux 2.6之前,内核分配的文件会动态地处理,但它不会再释放它们。相反,免费的文件句柄保存在重新分配的列表中; “*文件句柄”值表示该列表的大小。大量的空闲文件句柄表示在打开文件句柄的使用中出现了过去的高峰。 从Linux 2.6开始,内核会释放已释放的文件句柄,并且“释放文件句柄”值始终为零。

因此,这将永远是零上的内核版本> = 2.6

+0

感谢您的反馈意见。这是有道理的。 你对我在上面的帖子中描述的问题有任何想法吗? – Denis

+0

我想你可能在[sf]而不是这里遇到这个问题,或者你可以试试[kannel users mailing list](http://www.kannel.org/mailman/listinfo/users)或[kannel错误跟踪器](https://redmine.kannel.org/),如果你怀疑它可能泄漏文件句柄。 – Hasturkun