O Dropbox está demorando muito tempo na CPU. Como posso corrigir isso?

11

Recentemente, notei que o Dropbox está consumindo cerca de 50 a 90% da minha CPU por mais de alguns segundos, às vezes - principalmente ao baixar / sincronizar arquivos grandes ou grandes.

Ainda assim, acho que, mesmo ao sincronizar muitos dados, não há razão para usar tanta CPU (talvez rede ou disco ..)

Alguma idéia ou sugestão? Como posso fazer o Dropbox usar menos CPU?

(executando no Ubuntu 12.04 no Lenovo X220 com unidade SSD)

Yoav Feuerstein
fonte
1
Uma coisa que faço é iniciar o dropbox com uma gentileza de 18. Talvez isso ajude a sua situação também.
22813 Scott C Wilson
(ORIGINALMENTE POSTADO POR: @Rafael) Hashing geralmente leva mais tempo que o esperado, porque o cache da caixa de depósito mantém cópias de arquivos antigos. Verifique a pasta ./dropbox.cache.
BiggJJ
2
Esta questão é mencionada na pergunta Superusuário . O Dropbox causa alto uso da CPU no Mac OS X 10.8.2 (Mountain Lion) .
Peter Mortensen

Respostas:

6

O Dropbox calcula um hash de todos os arquivos que serão sincronizados, usa-o para determinar se eles foram alterados e para evitar o upload de conteúdo que já está na nuvem (outro cliente tem o mesmo arquivo).

O cálculo de hashes consome energia da CPU. Geralmente é perceptível no login.

Javier Rivera
fonte
1
Entendo ... Acho que esse pode ser o motivo - embora ainda seja bastante irritante às vezes! Obrigado :)
Yoav Feuerstein
talvez alguma maneira do sistema, renomeie para 19?
Aquarius Power
3
você pode usarcpulimit
Aquarius Power
11

Bom grito com o uso de cpulimit.

Achei que isso poderia ser simplificado (quando registrado como root) para

cpulimit -e dropbox -l 10

onde -l especifica a porcentagem de CPU. Observe que isso é para CPU total em todos os núcleos; portanto, um núcleo duplo teria um limite de 200

Resultado:

cpulimit -e dropbox -l 10
Process 2641 detected
alleyoopster
fonte
que exigiria sudo senha, tho acrescentando que linha para sudoers vai fazer o truque que eu acho
Aquarius Poder
@AquariusPower Se você não estava logado como root, isso realmente exigiria o sudo. (Eu estava logado como root - editado para esclarecer) graças
alleyoopster
2

Talvez haja mais do que o problema do hash.

Uma coisa que eu acho estranho é que, com lsof | grep dropboxeu não vejo muitos arquivos abertos em ~ / Dropbox para o processo do dropbox.

O que fiz foi o aptitude de limpar todos os pacotes relacionados ao dropbox, rm -r as pastas 3 ~ / .dropbo * (mas não a pasta ~ / Dropbox) e, em seguida, ativar os repositórios e parceiros aptitude install nautilus-dropbox. Se esse procedimento é problemático, não sei.

Depois de um tempo (uma hora?) Com a nova instalação e com a carga da CPU do dropbox, não vejo mais a carga, aparentemente o problema foi resolvido. Talvez a remoção tenha ajudado ou eu tenha apenas um lote muito grande de arquivos que precisam ser atualizados.

Finn Årup Nielsen
fonte
Obrigado! Vou tentar na próxima vez que algo assim acontecer novamente.
precisa
Eu já tenho nautilus-dropboxe apenas um ~/.dropbox, o meu uso de CPU e Sysload é alta :(
Aquarius Poder
2

Você pode limitar o uso da CPU de qualquer aplicativo desta maneira:

#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

A primeira linha de código é apenas um adivinhador de pid. A segunda linha é ajudar a cpulimitertrabalhar melhor sem exigir sudo.

Poder de Aquário
fonte
2

Agora, 2019. O Dropbox está na versão 79. Usando-o com o Debian em uma 7a geração do i7, ele ainda consome ~ 15% de CPU quando não carrega ou baixa arquivos.

Em sua página de download, o Dropbox diz como instalar em um ambiente sem cabeça.

O executável do dropboxd sempre abre o ícone da bandeja ao executar no X. Descobri que executá-lo sempre no modo sem cabeça reduzia o consumo da CPU a 1% após alguns minutos

#!/bin/bash

unset DISPLAY
while : ; do
  rm -rf $HOME/.dropbox/dropbox.pid
  rm -rf /tmp/dropbox*
  ~/.dropbox-dist/dropboxd
  sleep 10
done >> /dev/null

Mas lembre-se de que você pode executar isso somente após o login no Dropbox

Thadeu de Paula
fonte
0

Isso acontece frequentemente, mesmo quando o Dropbox não está realmente sincronizando nada (a resposta do hash faz sentido para mim). Minha solução rápida é simplesmente configurar o Dropbox para parar a sincronização. Mesmo que não esteja sincronizando nada, isso parece prejudicar o uso da CPU. Só tenho que lembrar de ligá-lo mais tarde.

Stephen Bradley
fonte