2017-05-09 55 views
0

我有自由分配的文件描述符的問題,它總是零!共免費分配的文件描述符始終爲零 - 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文件描述符的文章。

每個解決方案我試過沒有幫助。

我在做什麼錯了?

需要你的幫助。

預先感謝您。

回答

1

由於每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