ブログに戻る
·8分で読める·productdevbook

macOSでDropboxのバックグラウンドアップロードを可視化する

Dropboxはバックグラウンドでアップロードしますが、それを通知することはほとんどありません。macOSで何が起きているかを正確に見て、きれいに一時停止する方法を解説します。

  • Cloud sync
  • macOS
  • Bandwidth
  • App-specific

真夜中に14GBのフォルダをDropboxにドラッグし、蓋を閉じ、ベッドへ向かいます。翌朝バッジは「最新」と言いますが——Wi-Fiルーターは熱く、Time Machineドライブは文句を言い、ラップトップのバッテリーは電源接続にもかかわらず18%。寝ている間に何かがたくさんのデータをアップロードしました。問いは何が、いつ、推測なしにどう見るか。

MacでのDropboxバックグラウンドアップロードを追跡することは、Dropboxが意図的に静かなのであるべきより難しい。バッチし、抑制し、延期し、アイドルを待ちます。それは良い挙動——午前2時47分にラップトップが正確に何をしたか知る必要があるまでは。

MacでのDropboxバックグラウンドアップロードの実際の仕組み

macOS上のDropboxはファイル保存の瞬間にすべてのバイトを押しません。デスクトップクライアント(メインプロセスはアクティビティモニタでDropboxとして表示、ヘルパープロセスはDropboxMacUpdateDropbox Web Helper)は通信量をコミットするタイミングを決めるためにいくつかのシグナルを使います:

  • アイドル検出 — キーボードとトラックパッドに数分触らないと、Dropboxはパイプを使えると仮定。
  • 電源状態 — バッテリーでは緊急でない転送を延期する傾向。AC電源ではスロットルを開く。
  • 最近の活動 — 新しく追加されたフォルダはキューされ、ファイル単位ではなくチャンクでアップロード。
  • LAN同期 — ネットワーク上の別のDropboxクライアントがすでにファイルを持っているなら、WAN経由ではなくローカルから引く。これが14GBのフォルダが時々分単位で同期する理由。

これらヒューリスティックの合計は、Dropboxアップロードが最も気づきにくいときに起こること——夜通し、昼食中、ミーティング中。ほとんどの時に有用。ホテルWi-Fiが5GB上限のときフラストレーション。

「Smart Sync」/オンライン専用の変化

Smart Sync(新しいDropboxバージョンでは「オンライン専用」と呼ばれる)は、ファイルメタデータがディスクに住むがバイトはそこにないことを意味します。それらのファイルの1つを開くと、Dropboxはファイルプロバイダ経由でそれを実体化します——fileproviderdとして動くシステム拡張。実体化はバイトを下に引き、上ではない。重い外向きトラフィックが見えるなら、オンライン専用ファイルは原因ではない。需要に応じて引きます。

重い外向きトラフィックを引き起こすもの:

  1. たった今ドラッグしたフォルダ。
  2. オフライン利用可能だったフォルダで外部から修正されたもの。
  3. ペアリングされた電話からのカメラアップロード(これはMacを通って漏斗にしているならMacからのDropboxアップロードとカウント)。
  4. 選択的同期のフリップ——以前除外したフォルダを再びオンに。

メニューバーでライブで観察

Dropboxアップロードを現場で捕まえる最速の方法は一目で分かる通信量モニター。macOSは出荷しません——アクティビティモニタのネットワークタブはプロセス別合計を表示するがライブレートはなく、アプリ終了でデータがリセットされます。メニューバーツールがそのギャップを埋めます。

ovaはメニューバーに座り、アプリ別帰属付きの現在のアップロードとダウンロードレートを表示します。Dropboxがアップロード中なら、リンクが許す限り「Dropbox」が登るのが見えます——健康な接続で通常5〜30MB/s——他のすべては低いまま。メニューバーアイコンをクリックすれば、どのアプリが何を占めているか正確に見えます。

ヘルパープロセスの折りたたみ
DropboxはメインプロセスとDropbox Web HelperやDropboxMacUpdateのようなヘルパーを動かします。ovaはこれらを一緒に折りたたむので、3行ではなく「Dropbox」を1度読みます。

観察された実際の14GB夜通しアップロード

翌朝タイムラインをスクラブしたとき、実際の夜通しDropboxアップロードはこんな感じ:

  • 23:51 — フォルダ追加、Dropboxが90秒間2MB/sにスパイク(初期インデックス+最初のチャンク)。
  • 00:03 — ラップトップ蓋閉。アップロード一時停止。
  • 00:14 — ラップトップがPower Napサイクルのため短く起動。Dropboxが約12MB/sで4分再開、それから再びスリープ。
  • 02:30から03:50 — 持続的な18MB/s。これが14GBの大半。
  • 06:20 — 最終チャンク+インデックス調整。合計転送: 14.2GB。

履歴を保持しないアクティビティモニタからこの絵は得られません。アプリ別レートをディスクに継続的に書く何かが必要。

同期状態を壊さずにDropboxを一時停止

Dropboxを「停止」する間違った方法はアップロード中に強制終了すること。正しい方法、順番:

  1. Dropboxメニューバーアイコン → アバター → 同期を一時停止をクリック。これはサーバに一時停止していると伝え、再起動を渡って永続。最もきれいなオプション。
  2. 通信量制限を設定。 Dropbox環境設定 → ネットワーク → 通信量で、特定のKB/sにアップロードを上限設定可能。200KB/s上限は速いリンクで透明だが、ホテルWi-Fiの飽和を防ぐ。
  3. Dropboxをきれいに終了。 同じメニュー、「Dropboxを終了」。次回起動時に同じバイトオフセットから再開。

LAN同期が犯人なとき

同じネットワーク上に2台のMacがあり、両方が同じDropboxフォルダを持つなら、大きな転送はLAN経由でそれら間を移動します——速いが、WANリンクに触れなくてもローカルネットワークにカウント。きついWi-Fiセットアップ(ホテル、コワーキング、カフェ)では、ネットワーク環境設定でLAN同期をオフにすると全トラフィックをインターネット接続経由に強制します。実は遅いがより予測可能。

一般的なパターンとその意味

Dropbox通信量を1週間観察するとき認識する価値のあるパターン:

何時間も安定した低レート

通常、抑制されたレートでチャンクされている1つの非常に大きなファイル(動画、ディスクイメージ、データベースダンプ)。Dropboxは大きなファイルを4MBチャンクに分割し順次アップロード。10MB/sでの40GBファイルは1時間ちょっと——ただ、設定やネットワーク条件でDropboxが1MB/sに抑制されているなら11時間。

数分ごとの活動バースト

多くの小さなファイルが揺れていることを示す。ビルドプロセスや開発環境がDropboxフォルダ内に書くときこれが起きます。修正は通信量制限ではなく——ビルドディレクトリをDropboxの外に移動するか無視パスに追加。

最近の変更なしのアップロード活動

電話からのカメラアップロード、Dropboxに書くサードパーティアプリ、または共有フォルダへの誰かの編集。3番目のケースは正常。2番目は調査の価値あり。

Dropboxトラフィックを他すべてと比較

Dropboxが唯一動いているクラウド同期であることはまれ。火曜午後の典型的なMacにはDropbox、iCloud(birdcloudd)、Google Drive(Google Drive)、OneDriveすべてが同じアップリンクを競合し、ネットワーク先のあるTime Machineも。モニタリングの要点はどれかを悪魔化することではない——順序を知ることです。

便利な週次習慣:

  1. 週末に通信量モニターを開く。
  2. アップロード量でソート。
  3. トップ3を記録。Dropboxがトップで大きなフォルダをアップロードしたなら問題なし。Dropboxがトップで何もしていないなら——問う価値ある問い。

ovaを動かしてみる

一目で分かるメニューバー通信量モニター——ローカル、署名済み、約3MB。Dropboxがいつどれだけアップロードするか正確に見られる。

macOS用ダウンロード

メニューバーを超えるログと履歴

Dropboxはローカル同期ログを~/.dropbox/sync_history.dbに保持します。SQLiteデータベースで、何がいつ同期したかについて章節までを本当に欲しければsqlite3 CLIで突くことができます。多くの人はそんなに深く行く必要はありません——メニューバーレートとアプリ別履歴で、MacでのDropboxバックグラウンドアップロードについて尋ねる質問の95%をカバーします。

ローカルログが助けるケース:

  • ファイルが1台のデバイスで「同期済み」と表示されるが別では欠けている。履歴はMacが実際にバイトを押したかキューしただけかを教えてくれる。
  • フォルダがサイズが示唆するよりずっと長くかかる。ログはファイル別オーバーヘッド(多くの小ファイル)か本物のスループット限界かを示す。
  • コンフリクトコピーが現れたが理由が分からない。ログのタイムスタンプは誰が何をいつ保存したかを再構築する唯一信頼できる方法。

そうは言うも、同期をデバッグするためにSQLiteデータベースを開くのは年に1度することの類。日々の問い——「Dropboxは今アップロード中で、それがWi-Fiが遅く感じる理由か」——は、メニューバーへの一目以上を必要とすべきではありません。

上限付き接続用クイックチェックリスト

従量制接続に切り替えようとするとき——電話テザリング、ホテル上限、遅いアップリンクのリモートオフィス——これを通します:

  • ネットワーク切り替え前にDropboxを一時停止。
  • またはアップロード上限を一時的に0KB/sに設定(完全一時停止より速く再開するソフト一時停止として動作)。
  • トポロジを信用しないネットワーク上ならLAN同期を無効化。
  • 接続が本当にきつい(その日に1GB残のホットスポット)なら完全にDropboxを閉じる。
  • 太いパイプに戻ったらすべてを再有効化。

30秒かかり、翌日「ホットスポットの4GBデータはどこに行ったか」を救います。

まとめ

Dropboxは行儀がよい: バッチし、延期し、見ていないときアップロード。それがまさに欲しい挙動——連鎖の何かが壊れて何が起きたか見る必要があるまでは。修正はDropboxを無効化するか世話することではなく。Macのネットワーク活動の一目で分かるビューを持ち、「Dropboxは昨夜14GBアップロードしたか」の問いに1秒の答えがあるようにすることです。

ovaをインストールし、1週間動かしましょう。次に通信量がどこに行ったか不思議に思うとき、知っているでしょう。