Dropbox отнимает слишком много процессорного времени. Как я могу это исправить?

11

Недавно я заметил, что Dropbox занимает около 50-90% моего процессора в течение нескольких секунд, в основном при загрузке / синхронизации большого или большого количества файлов.

Тем не менее, я предполагаю, что даже при синхронизации большого количества данных нет причин использовать этот процессор (возможно, сеть или диск ..)

Есть идеи или предложения? Как я могу сделать так, чтобы Dropbox использовал меньше процессора?

(работает на Ubuntu 12.04 на Lenovo X220 с SSD-накопителем)

Йоав Фюрштайн
источник
1
Одна вещь, которую я делаю, это запускаю dropbox с приятностью 18. Возможно, это поможет и вашей ситуации.
Скотт С. Уилсон,
(ОРИГИНАЛЬНО ПОСТАВЛЕНО: @Rafael) Хеширование часто занимает больше времени, чем ожидалось, поскольку в кэш-памяти Dropbox хранятся копии старых файлов. Проверьте папку ./dropbox.cache.
BiggJJ
2
Этот вопрос упоминается в вопросе «Супер-пользователь». Dropbox вызывает высокую загрузку процессора в Mac OS X 10.8.2 (Mountain Lion) .
Питер Мортенсен

Ответы:

6

Dropbox вычисляет хэш всех файлов, которые он собирается синхронизировать, он использует его, чтобы определить, изменились ли они, и избежать загрузки контента, который уже находится в их облаке (тот же файл есть у другого клиента).

Расчет хэшей требует мощности процессора. Обычно это заметно при входе в систему.

Хавьер Ривера
источник
1
Я вижу .. Я думаю, что это может быть причиной - хотя иногда это все еще довольно раздражает! Спасибо :)
Йоав Фейерштайн
может быть какой-то системный способ, возьми до 19?
Водолей Сила
3
Вы можете использоватьcpulimit
Водолей Power
11

Хороший крик с использованием cpulimit.

Я обнаружил, что это может быть упрощено (при входе в систему как root)

cpulimit -e dropbox -l 10

где -l указывает процент загрузки процессора. Обратите внимание, что это для общего процессора на всех ядрах, поэтому двухъядерный будет иметь ограничение в 200

Выход:

cpulimit -e dropbox -l 10
Process 2641 detected
alleyoopster
источник
для этого потребуется пароль sudo, хотя добавление этой строки в sudoers поможет, я думаю
Aquarius Power
@AquariusPower Если вы не вошли в систему как root, то для этого действительно потребуется sudo. (Я вошел в систему как root - отредактировано, чтобы уточнить) спасибо
alleyoopster
2

Возможно, здесь есть нечто большее, чем проблема хеширования.

Одна вещь, которая мне кажется странной, это то, что lsof | grep dropboxя не вижу много открытых файлов в ~ / Dropbox для процесса dropbox.

Я попытался очистить все пакеты, связанные с dropbox, rm -r папки 3 ~ / .dropbo * (но не папку ~ / Dropbox), а затем включить репозитории партнеров и aptitude install nautilus-dropbox. Является ли эта процедура проблематичной, я не знаю.

Через некоторое время (час?) С новой установкой и с загрузкой процессора в Dropbox я больше не вижу нагрузки, поэтому, видимо, проблема решена. Возможно, очистка помогла, или у меня была очень большая партия файлов, которые нуждались в обновлении.

Финн Оруп Нильсен
источник
Благодарность! Я попробую в следующий раз, когда что-то подобное случится снова.
Йоав Фейерштейн
У меня уже nautilus-dropboxи только один ~/.dropbox, мой процессор и sysload высоки :(
Aquarius Power
2

Вы можете ограничить использование процессора любым приложением следующим образом:

#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. 2-я линия - помочь cpulimiterработать лучше, не требуя sudo.

Водолей Сила
источник
2

Теперь 2019. Dropbox на версии 79. Используя его с Debian на i7 7-го поколения, он по-прежнему потребляет ~ 15% ЦП, если не загружать и не загружать файлы.

На странице загрузки Dropbox рассказывает, как установить систему в автономном режиме.

При запуске на X исполняемый файл dropboxd всегда открывает значок в трее. Я обнаружил, что запуск его всегда в автономном режиме приводит к снижению нагрузки на процессор до 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

Thadeu de Paula
источник
0

Это часто случается со мной, даже когда Dropbox на самом деле ничего не синхронизирует (там ответ на хеширование имеет смысл для меня) Мое быстрое решение состоит в том, чтобы просто установить Dropbox, чтобы остановить синхронизацию. Даже при том, что это фактически не синхронизирует что-либо, это, кажется, убивает использование ЦП. Просто не забудьте включить его позже.

Стивен Брэдли
источник