Dropbox耗费了太多的CPU时间。 我该如何解决?

我最近注意到Dropbox占用了大约50-90%的CPU时间超过了几秒钟 – 主要是在下载/同步许多或大型文件时。

不过,我想即使同步大量数据,也没有理由使用那么多CPU(可能是网络或磁盘……)

有什么想法或建议吗? 如何让Dropbox使用更少的CPU?

(在带有SSD驱动器的Lenovo X220上运行Ubuntu 12.04)

Dropbox计算它将要同步的所有文件的哈希值,它使用它来确定它们是否已更改并避免上载已存在于其云中的内容(另一个客户具有相同的文件)。

计算哈希需要CPU功率。 登录时通常会注意到这一点。

使用cpulimit很好的喊叫。

我发现这可以简化(以root用户身份登录)

 cpulimit -e dropbox -l 10 

其中-l指定CPU的百分比。 请注意,这是针对所有核心的总CPU,因此双核心的限制为200

输出:

 cpulimit -e dropbox -l 10 Process 2641 detected 

也许还有比哈希问题更多的东西。

我发现奇怪的一件事是用lsof | grep dropbox lsof | grep dropbox我没有在〜/ Dropbox下看到很多用于dropbox进程的打开文件。

我做的是aptitude清除所有与dropbox相关的包,rm -r 3~ / .dropbo *文件夹(但不是〜/ Dropbox文件夹),然后启用合作伙伴存储库和aptitude install nautilus-dropbox 。 我不知道这个程序是否有问题。

一段时间(一小时?)新安装和Dropbox CPU负载我不再看到负载,所以显然问题解决了。 也许清除有所帮助,或者我只需要一大批需要更新的文件。

您可以通过以下方式限制任何应用程序的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

即使Dropbox实际上没有同步任何东西(哈希的答案对我来说很有意义),这种情况经常发生在我身上。 我的快速解决方案是简单地将Dropbox设置为停止同步。 即使它实际上并没有同步任何东西,这似乎会破坏CPU的使用率。 只需要记住以后再打开它。