Dropbox benötigt zu viel CPU-Zeit. Wie kann ich es reparieren?


11

Ich habe kürzlich festgestellt, dass Dropbox manchmal mehr als nur ein paar Sekunden lang etwa 50-90% meiner CPU beansprucht - hauptsächlich beim Herunterladen / Synchronisieren vieler oder großer Dateien.

Trotzdem denke ich, dass es selbst bei der Synchronisierung vieler Daten keinen Grund gibt, so viel CPU (möglicherweise Netzwerk oder Festplatte) zu verwenden.

Irgendwelche Ideen oder Vorschläge? Wie kann ich Dropbox dazu bringen, weniger CPU zu verbrauchen?

(läuft unter Ubuntu 12.04 auf Lenovo X220 mit SSD-Laufwerk)


1
Eine Sache, die ich mache, ist Dropbox mit einer Freundlichkeit von 18 zu starten. Vielleicht würde dies auch Ihrer Situation helfen.
Scott C Wilson

(URSPRÜNGLICH VERÖFFENTLICHT VON: @Rafael) Das Hashing dauert oft länger als erwartet, da der Dropbox-Cache Kopien alter Dateien speichert. Überprüfen Sie den Ordner ./dropbox.cache.
BiggJJ

Antworten:


6

Dropbox berechnet einen Hash aller zu synchronisierenden Dateien und verwendet ihn sowohl, um festzustellen, ob sie geändert wurden, als auch um das Hochladen von Inhalten zu vermeiden, die sich bereits in der Cloud befinden (ein anderer Kunde hat dieselbe Datei).

Das Berechnen von Hashes benötigt CPU-Leistung. Dies fällt normalerweise beim Anmelden auf.


1
Ich verstehe ... ich denke, das könnte der Grund sein - obwohl es manchmal immer noch ziemlich nervig ist! Danke :)
Yoav Feuerstein

vielleicht auf irgendeine systemweise, um es auf 19 umzustellen?
Wassermann Macht

3
Sie können verwendencpulimit
Aquarius Power

11

Guter Ruf mit cpulimit.

Ich fand, dass dies vereinfacht werden könnte (wenn als root angemeldet)

cpulimit -e dropbox -l 10

Dabei gibt -l den Prozentsatz der CPU an. Beachten Sie, dass dies für die gesamte CPU über alle Kerne gilt, sodass ein Dual-Core ein Limit von 200 haben würde

Ausgabe:

cpulimit -e dropbox -l 10
Process 2641 detected

das würde ein sudo Passwort erfordern, aber das Hinzufügen dieser Zeile zu sudoers wird den Trick machen, denke ich
Aquarius Power

@AquariusPower Wenn Sie nicht als root angemeldet wären, würde es in der Tat sudo erfordern. (Ich wurde als root angemeldet - bearbeitet, um zu verdeutlichen) danke
alleyoopster

2

Vielleicht steckt mehr dahinter als das Problem des Hashings.

Eine Sache, die ich seltsam finde, ist die mit lsof | grep dropbox ich unter ~ / Dropbox nicht viele geöffnete Dateien für den Dropbox-Prozess sehe.

Was ich getan habe, war, alle mit Dropbox verbundenen Pakete zu löschen, die 3 ~ / .dropbo * -Ordner (aber nicht den ~ / Dropbox-Ordner) zu entfernen und dann Partner-Repositorys und zu aktivieren aptitude install nautilus-dropbox . Ob dieses Verfahren problematisch ist, weiß ich nicht.

Nach einer Weile (eine Stunde?) Mit der Neuinstallation und mit Dropbox-CPU-Last sehe ich die Last nicht mehr, so dass das Problem anscheinend gelöst ist. Vielleicht hat das Löschen geholfen, oder ich hatte nur einen sehr großen Stapel von Dateien, die aktualisiert werden mussten.


Vielen Dank! Ich werde es versuchen, wenn das nächste Mal so etwas wieder passiert.
Yoav Feuerstein

Ich habe bereits nautilus-dropboxund nur eine ~/.dropbox, meine CPU-Auslastung und Sysload ist hoch :(
Aquarius Power

2

Sie können die CPU-Auslastung jeder Anwendung folgendermaßen einschränken:

#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

Die erste Codezeile ist nur ein PID-Guesser. Die zweite Zeile soll helfen cpulimiter, besser zu arbeiten, ohne es zu benötigen sudo.


2

Jetzt, 2019. Dropbox ist auf Version 79. Wenn es mit Debian auf einem i7 der 7. Generation verwendet wird, verbraucht es immer noch ~ 15% CPU, wenn keine Dateien hochgeladen oder heruntergeladen werden.

Auf seiner Download-Seite erklärt Dropbox, wie man in einer kopflosen Umgebung installiert.

Die ausführbare Datei dropboxd öffnet immer das Tray-Symbol, wenn sie auf X ausgeführt wird. Ich stellte fest, dass die CPU-Auslastung nach wenigen Minuten auf 1% sank, wenn sie immer im Headless-Modus ausgeführt wurde

#!/bin/bash

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

Beachten Sie jedoch, dass Sie dies erst ausführen können, nachdem Sie sich bei Dropbox angemeldet haben


0

Dies passiert mir häufig, auch wenn Dropbox eigentlich nichts synchronisiert (dort macht die Hashing-Antwort für mich Sinn). Meine schnelle Lösung besteht darin, Dropbox so einzustellen, dass die Synchronisierung beendet wird. Auch wenn es eigentlich nichts synchronisiert, scheint dies die CPU-Auslastung zu beeinträchtigen. Ich muss nur daran denken, es später wieder einzuschalten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.