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的使用率。 只需要记住以后再打开它。