我最近注意到 Dropbox 有时会占用我 CPU 的 50-90% 以上,持续时间超过几秒钟 - 主要是在下载/同步大量或大文件时。
不过,我猜测即使在同步大量数据时,也没有理由使用那么多 CPU(可能是网络或磁盘......)
有什么想法或建议吗?如何让 Dropbox 减少 CPU 使用率?
(在配备 SSD 驱动器的联想 X220 上运行 Ubuntu 12.04)
答案1
使用 cpulimit 效果很好。
我发现这可以简化(以 root 身份登录时)
cpulimit -e dropbox -l 10
其中 -l 指定 CPU 百分比。请注意,这是所有核心的总 CPU,因此双核的限制为 200
输出:
cpulimit -e dropbox -l 10
Process 2641 detected
答案2
Dropbox 计算所有要同步的文件的哈希值,使用它来确定文件是否发生了变化,并避免上传已经存在于云中的内容(另一个客户有相同的文件)。
计算哈希值需要消耗 CPU 能力。登录时通常会注意到这一点。
答案3
您可以通过这种方式限制任何应用程序的 CPU 使用率:
#nPidDropbox=`ps -A -o pid,comm |egrep " dropbox$" |sed -r "s'^ *([[:digit:]]*) .*'\1'"`
nPidDropbox=`pgrep dropbox`
renice -n 19 `ps -L -p $nPidDropbox -o lwp |tr "\n" " "`
cpulimit -p "$nPidDropbox" -l 10
第一行代码只是一个 pid 猜测器。第二行是为了cpulimiter
在不需要的情况下帮助更好地工作sudo
。
答案4
现在,2019 年。Dropbox 的版本是 79。在 i7 第 7 代上与 Debian 一起使用时,当不上传或下载文件时,它仍然会消耗约 15% 的 CPU。
Dropbox 在其下载页面中说明了如何在无头环境中安装。
在 X 上运行时,dropboxd 可执行文件始终打开托盘图标。我发现,始终以无头模式运行它几分钟后 CPU 消耗会降低到 1%
#!/bin/bash
unset DISPLAY
while : ; do
rm -rf $HOME/.dropbox/dropbox.pid
rm -rf /tmp/dropbox*
~/.dropbox-dist/dropboxd
sleep 10
done >> /dev/null
但请注意,只有登录 Dropbox 后才能运行此操作