gvfsd:在地址创建服务器时出错:打开的文件过多

gvfsd:在地址创建服务器时出错:打开的文件过多

我最近收到了数百个类似这样的错误:

Jan 20 13:21:01 server2 gvfsd[4093]: daemon: Error creating server at address 
  unix:abstract=/dbus-vfs-daemon/socket-jOhPfYdB: 
  Unable to create socket: Too many open files

我检查了打开的文件句柄,似乎没有什么特别令人反感的。无论如何提高限​​制,都没有什么区别。重启后会消失一段时间,但很快就会再次启动。

也许与此有关,我经常无法使用文件管理器浏览垃圾箱。(我使用的是 PCManFM)。它会弹出一个对话框,提示“打开的文件太多”。如果我关闭它,gvfsd-trash它可能会重新开始工作。不过,即使垃圾箱正在工作,错误仍然会不断出现在日志中。

我对 eoan 非常了解。这是最近才发生的,但我无法将其与任何特定更新或软件安装联系起来。

答案1

我遇到了同样的问题,我发现打开文件!=文件描述符。

lsof报告了 600,000 个文件,其中一半是 gecko (firefox)。关闭 firefox 会将它们减少到 150,000 个,但对 gvfsd 无法打开套接字没有任何影响。

现在,如果你发出如下命令:

ls -1 /proc | \
grep \[0-9\]| \
sed "s,.*,printf 'process %10d uses file descriptors: ' &  ;sudo ls -l /proc/&/fd | wc -l," | \
bash | \
sort -h -r -k 6 | \
head

我不是 Linux 脚本专家,所以这远非完美

此命令用于计算当前正在运行的任何 PID 的 FD

您将看到大多数进程使用最大值 50。只有gvfsd设置的最大值是 1024。ulimit所以也许提高 ulimit 可以解决问题。也许不行 ;)

gvfsd是用户进程,并且允许用户将 ulimit 设置为 max ulimit -Hn。因此临时提高限制就像发出 一样简单ulimit -n 2048。但这只会影响当前 shell。您必须将其添加到~/.bashrc编辑:不起作用。我到底在哪里定义 gvfsd 的 ulimit?

附言:我没有遇到 100% CPU 问题,除非磁盘上有文件在不断变化(例如下载电影等较大的文件)。不知道这是否相关。

相关内容