我有一台 MacBook Pro,配备 Lion 10.7.2、2.26 GHz CPU 和 2GB DDR3 RAM。
如果我打电话
top -o cpu
该/usr/libexec/opendirectoryd
进程消耗了 40% 以上的 CPU。
$ ps aux | grep opend
root 27834 40,4 0,3 2472048 5780 ?? Rs 6:36PM 167:19.66 /usr/libexec/opendirectoryd
答案1
该问题与 Dropbox 中的无效符号链接有关。使用以下方法查找它们:
find ~/Dropbox -type l -printf "%Y %p\n" | grep "^N"
解决方案是:删除无效的符号链接。如果find
没有该printf
选项,请使用:
find -L ~/Dropbox -type l
参考
答案2
正如@juanpablo 所说,这可能是由符号链接引起的。
显然,如果符号链接指向/home
,autofs 或 automountd 就会触发,并耗费大量 CPU 来确定该地方确实不存在。
看一下/etc/auto_home
和/etc/autofs.conf
。
要查看您是否遇到了此特定问题,请设置
AUTOMOUNTD_VERBOSE=TRUE
选项autofs.conf
,重新启动 automountd
sudo launchctl stop com.apple.automountd
并查看 syslog.log(您可以使用应用程序:控制台)。如果您看到类似以下内容,则表明您受到此问题的影响:
May 20 17:53:43 xxx automountd[31709]: od_search failed
要解决这个问题,请编辑文件/etc/auto_master
并删除(或删除#
)以 开头的行/home
。然后运行:
sudo automount -vc
答案3
对我来说,真正解决问题的方法是拔掉 iMac 上的以太网电缆。听起来很疯狂 :) 我遭到了来自外部的攻击,对我的 sshd 进行了暴力破解。我的路由器(来自 UPC,Cisco EPC3925)默认将所有来自外部的流量转发到它拥有的单个以太网端口。拔掉电缆后,攻击停止了,因为 iMac 只使用 WiFi。
显然 sshd 正在使用 opendirectoryd,这就是发生这种情况的原因。