共免费分配的文件描述符始终为零 - 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
守护进程(bearerbox
和smppbox
)。一旦打开的文件数量达到限制smppbox
正在卡住,只有重新启动它才能提供帮助,这根本不是解决方案。
按照我因特网上发现我明白,有系统中没有自由alocated文件描述符的文章。
每个解决方案我试过没有帮助。
我在做什么错了?
需要你的帮助。
预先感谢您。
答
由于每man page for proc:(重点煤矿)
的/ proc/SYS/FS /文件-NR
这(只读)文件包含三个号码:分配的文件句柄的数量(即,目前打开的文件数量);免费文件句柄的数量;和文件句柄的最大数量(即与/ proc/sys/fs/file-max相同的值)。如果分配的文件句柄数接近最大值,则应考虑增加最大值。在Linux 2.6之前,内核分配的文件会动态地处理,但它不会再释放它们。相反,免费的文件句柄保存在重新分配的列表中; “自由文件句柄”值表示该列表的大小。大量的空闲文件句柄表示在打开文件句柄的使用中出现了过去的高峰。 从Linux 2.6开始,内核会释放已释放的文件句柄,并且“释放文件句柄”值始终为零。
因此,这将永远是零上的内核版本> = 2.6
感谢您的反馈意见。这是有道理的。 你对我在上面的帖子中描述的问题有任何想法吗? – Denis
我想你可能在[sf]而不是这里遇到这个问题,或者你可以试试[kannel users mailing list](http://www.kannel.org/mailman/listinfo/users)或[kannel错误跟踪器](https://redmine.kannel.org/),如果你怀疑它可能泄漏文件句柄。 – Hasturkun