Dropbox mengambil terlalu banyak waktu CPU. Bagaimana saya bisa memperbaikinya?

11

Baru-baru ini saya memperhatikan bahwa Dropbox mengambil sekitar 50-90% CPU saya selama lebih dari beberapa detik kadang-kadang - kebanyakan saat mengunduh / menyinkronkan banyak file atau besar.

Namun, saya rasa bahkan ketika menyinkronkan banyak data, tidak ada alasan untuk menggunakan CPU sebanyak itu (mungkin jaringan atau disk ..)

Ada ide atau saran? Bagaimana saya bisa membuat Dropbox menggunakan lebih sedikit CPU?

(berjalan di Ubuntu 12,04 pada Lenovo X220 dengan SSD Drive)

Yoav Feuerstein
sumber
1
Satu hal yang saya lakukan adalah mulai dropbox dengan kesenangan 18. Mungkin ini akan membantu situasi Anda juga.
Scott C Wilson
(ASLI POSTED OLEH: @Rafael) Hashing sering kali lebih lama dari yang diharapkan karena cache dropbox menyimpan salinan file lama. Periksa folder ./dropbox.cache.
BiggJJ
2
Pertanyaan ini disebut dalam pertanyaan Pengguna Super Dropbox menyebabkan penggunaan CPU yang tinggi pada Mac OS X 10.8.2 (Mountain Lion) .
Peter Mortensen

Jawaban:

6

Dropbox menghitung hash dari semua file yang akan disinkronkan, ia menggunakan keduanya untuk menentukan apakah mereka berubah dan untuk menghindari mengunggah konten yang sudah ada di cloud mereka (pelanggan lain memiliki file yang sama).

Menghitung hash membutuhkan daya CPU. Biasanya terlihat saat login.

Javier Rivera
sumber
1
Begitu ya .. Saya kira itu mungkin alasannya - meski terkadang masih cukup mengganggu! Terima kasih :)
Yoav Feuerstein
mungkin beberapa cara sistem, ganti menjadi 19?
Aquarius Power
3
Anda dapat menggunakancpulimit
Aquarius Power
11

Teriakan yang bagus dengan menggunakan cpulimit.

Saya menemukan ini dapat disederhanakan (ketika login sebagai root) menjadi

cpulimit -e dropbox -l 10

di mana -l menentukan persentase CPU. Perhatikan ini untuk CPU total pada semua core, jadi dual core akan memiliki batas 200

Keluaran:

cpulimit -e dropbox -l 10
Process 2641 detected
gang
sumber
yang membutuhkan kata sandi sudo, menambahkan baris itu ke sudoers akan melakukan trik yang saya kira
Aquarius Power
@AquariusPower Jika Anda tidak login sebagai root maka itu memang membutuhkan sudo. (Saya login sebagai root - diedit untuk mengklarifikasi) terima kasih
alleyoopster
2

Mungkin ada lebih dari itu daripada masalah hashing.

Satu hal yang saya temukan aneh adalah bahwa dengan lsof | grep dropboxsaya tidak melihat banyak file terbuka di bawah ~ / Dropbox untuk proses dropbox.

Apa yang saya lakukan adalah membersihkan aptitude semua paket yang terkait dengan dropbox, rm -r folder 3 ~ / .dropbo * (tetapi bukan folder ~ / Dropbox), lalu aktifkan repositori mitra dan aptitude install nautilus-dropbox. Apakah prosedur ini bermasalah saya tidak tahu.

Setelah beberapa saat (satu jam?) Dengan instalasi baru dan dengan beban CPU dropbox saya tidak lagi melihat beban, jadi ternyata masalahnya selesai. Mungkin pembersihan telah membantu atau saya hanya punya banyak file yang perlu diperbarui.

Finn Årup Nielsen
sumber
Terima kasih! Saya akan mencobanya lain kali hal seperti ini terjadi lagi.
Yoav Feuerstein
Saya sudah nautilus-dropboxdan hanya satu ~/.dropbox, penggunaan cpu dan sysload saya tinggi :(
Aquarius Power
2

Anda dapat membatasi penggunaan cpu dari aplikasi apa pun dengan cara ini:

#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

Baris kode yang pertama hanyalah penebak pid. Baris kedua adalah membantu cpulimiterbekerja lebih baik tanpa perlu sudo.

Aquarius Power
sumber
2

Sekarang, 2019. Dropbox ada di versi 79. Menggunakannya dengan Debian pada gen ke-7 i7, ia masih mengkonsumsi ~ 15% CPU ketika tidak mengunggah atau mengunduh file.

Di halaman unduhannya, Dropbox mengatakan cara menginstal di lingkungan tanpa kepala.

Ikon dropboxd executable selalu membuka baki saat dijalankan pada X. Saya menemukan bahwa menjalankannya selalu dalam mode tanpa kepala membuat konsumsi CPU lebih rendah hingga 1% setelah beberapa menit

#!/bin/bash

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

Namun ketahuilah Anda dapat menjalankan ini hanya setelah login di Dropbox

Thadeu de Paula
sumber
0

Ini sering terjadi pada saya bahkan ketika Dropbox sebenarnya tidak menyinkronkan apa pun (di sana jawaban hashing masuk akal bagi saya). Solusi cepat saya adalah cukup mengatur Dropbox untuk berhenti menyinkronkan. Bahkan itu tidak benar-benar menyinkronkan apa pun yang tampaknya mematikan penggunaan CPU ini. Hanya perlu diingat untuk mengaktifkannya kembali nanti.

Stephen Bradley
sumber