在我的 NAS 上(一个非常基本和可靠的DNS-323),我使用 mldonkey 下载文件。
过去 3 年它一直运行良好,但现在 mldonkey 似乎不起作用了。
确实,每次我启动 mldonkey 时,它都会在执行几个小时后崩溃,并发出抱怨Too many open files
。由于 mldonkey 多年来一直运行良好,我不知道是什么原因导致它失败。
根据一些网络结果,我尝试过ulimit -n 5000
,但并没有改变任何东西:mldonkey 继续失败。
而且,似乎当我重新启动 mldonkey(但不重新启动 NAS)时,它失败得更快(这导致我认为打开的文件不是 mldonkey 文件。
那么。
我如何检查哪些文件已打开,以及我该怎么做才能修复这个问题?
答案1
您可以使用lsof查看哪些文件已打开(在基于 Debian 的 Linux 上,使用 apt-get install lsof)
列出用户打开的文件根:
lsof -u root
列出由 proc xxx 打开的文件:
lsof -p xxx
显示 proc xxx 打开的文件数:
lsof -p xxx | wc -l
当您更改 ulimit 时,我不确定活动进程是否采用新值。还请检查您的/etc/security/limits.conf
。默认情况下,它可能定义高于 5000 的限制。请注意限制 限制用户资源如果您的 NAS 在同一个用户下启动每个进程,那么 5000 似乎并不那么高。