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

ova vs アクティビティモニタ:標準ツールでは届かない領域

アクティビティモニタはMacのネットワークに関する多くの疑問に答えてくれます。それでも届かない領域と、専用ツールが必要になる理由を解説します。

  • Comparison
  • macOS
  • Bandwidth
  • Tools

アクティビティモニタを開き、ネットワークタブをクリック、認識しないプロセスの隣に14.2GBと読める「送信したバイト」という列を見つめます。それは悪いか? それは起動以来か? 最後のユーザログイン以来か? 数字は依然登っているか? アクティビティモニタはストップウォッチとメモ帳なしにそれをどれも教えません。それがほとんどの人がアクティビティモニタの通信量状況をより真剣に見始める瞬間。

アクティビティモニタは良いフォレンジックツール。リアルタイム通信量モニターであることに本当に悪い。本稿は組み込みアプリが実際何をするか、どこで落ちるか、そしてovaのような専用ツールがどうギャップを埋めるかをレイアウトします。

アクティビティモニタのネットワークタブが実際表示するもの

アクティビティモニタを開き(アプリケーション → ユーティリティ → アクティビティモニタ)、ネットワークタブをクリック。プロセス別の行をこれらの列で見ます:

  • 送信したバイト/受信したバイト — プロセス起動以来累積
  • 送信バイト/秒/受信バイト/秒 — 即時レート、数秒ごとに更新
  • 送信したパケット/受信したパケット — パケットカウンタ、主にネットワークエンジニアに有用
  • 集計スループットを表示するシステム全体合計グラフを下部に

データはmacOSが集計のためにすでに保持するカーネルレベルのカウンタから来ます。正確。生でもある——あなたと数字の間に解釈層なし。

これは1つの特定のユースケースに素晴らしい: 「プロセスXが起動以来ネットワーク活動をしたことがあるか確認したい」。それにアクティビティモニタは正しいツールで、他は要らない。

アクティビティモニタの通信量ビューが落ちるところ

問いが「このプロセスはネットワークに触れたことがあるか」以外の何かになると、すぐ亀裂が現れます。

1. 実際に観察できるライブレートなし

「バイト/秒」列は既定で2秒ごとに更新し、レートはノイジー。プロセス別グラフ、滑らかな線、スクラブ可能な履歴なし。画面の隅に開いたままにして速度計のように一目見ることはできない——読み終わる前に変わる数字のリスト。

通話品質が劣化する理由を把握するためにZoom通話中にアップロードを観察したいなら、アクティビティモニタはツールではない。レートグラフを描画してそれを可視に保つ何かが必要。

2. 累積カウンタが再起動ごとにリセット

「送信したバイト」列はプロセスが起動するとカウントを始める。Macを再起動するとすべてのカウンタがリセット。アプリを終了して再起動するとそのアプリのカウンタがリセット。アクティビティモニタには「今日」や「今週」の概念はない——「このPIDが立ち上がって以来」だけ。

それは従量制接続で最も一般的な通信量問いに対してアクティビティモニタをほぼ役立たずにする: 今日どれだけデータを使ったか?

3. ヘルパープロセスが集約されず散らばる

これが大きいもの。モダンmacOSアプリはマルチプロセス。Chromeを5タブで開くとアクティビティモニタは表示します:

  • Google Chrome(親UIプロセス、しばしばネットワークがほぼゼロ)
  • Google Chrome Helper (Renderer) — 複数のPID、タブやサイトごとに1つ
  • Google Chrome Helper (GPU) — 通常ネットワークでアイドル
  • Google Chrome Helper (Plugin) — メディアデコーダとDRM用
  • Google Chrome Helper — サービスワーカーと拡張用の汎用ヘルパー

Slack、Discord、Telegram、Microsoft Teams、Spotify、ほとんどのElectronアプリが同じパターンに従う。トラフィックはヘルパーに広がる。単一の行は悪く見えない。合計は巨大。

実数を得るには、名前でソートして頭の中でヘルパーを足すか、Chromeでフィルタして可視バイトを合計する必要。終える頃には数字は動いています。

4. 履歴なし——遡ってスクラブなし

アクティビティモニタは完全に現在に住む。昨日午後3時14分に何が起きたかを教えられない。ISPのアプリが火曜に30GB使ったと言うなら、アクティビティモニタはその日を再構築するのを助けられない。当時モニターを動かしていたかいなかったか。

5. デーモンとバックグラウンドプロセスが不可解

ネットワークタブは喜んでclouddnsurlsessiondmediaanalysisdmDNSResponderapsd、十数の他のシステムデーモンを表示します。どれも人間用語でラベル付けされていない。nsurlsessiondが200MB上りをしているのはiCloudや何かのアプリのバックグラウンドURLセッションがデータを送っていることを意味——ただアクティビティモニタはどのアプリがそのトラフィックを所有するか教えません。

ovaが上に追加するもの

ovaはアクティビティモニタが答えられない問いに答えるよう特に作られています。

  • メニューバーで滑らかな、アプリ別ライブレート。 クリックすると約1秒に1回更新するアプリ別ダウンロード/アップロードが見えます。
  • ヘルパー集約。 Chromeの7ヘルパーが「Google Chrome」の下にロール。Slackのヘルパーが「Slack」の下にロール。PIDではなくアプリ名を読む。
  • スクラブ可能なタイムライン。 2時間遡ってドラッグし、何が忙しかったか見、スパイクをアプリに帰属。
  • 永続的履歴。 カウンタは再起動と終了を生き延びる。「今日どれだけ使ったか」は本物の答えのある本物の問い。
  • 可能な場合のデーモン帰属。 nsurlsessiond経由のバックグラウンドトラフィックは、macOSが公開するときに発信元バンドルでラベル付け。

小さく(約3MB)、静かで(アイドルCPU 0.3%未満)、ローカル(テレメトリなし、アカウントなし、すべてのデータがディスク)、Apple SiliconとIntel両方のmacOS 14+用に署名・公証済み。

ライブのアプリ別レート
メニューバードロップダウンを開くとアプリ別のダウンロードとアップロードレートが約1Hzでサンプリングされて見えます。PID算術なし、リフレッシュボタンなし。

実用的比較: 50GBの1日を診断

ISPが200GB月次プランで昨日50GB使ったとテキストすると仮定。両ツールを通して歩きます。

アクティビティモニタのみで

  1. アクティビティモニタ → ネットワークを開く。
  2. カウンタが昨日の再起動でリセットされたと気づき、今朝のトラフィックだけを表示。
  3. 送信したバイトでソート。トップ行はnsurlsessiondで6GB。それがどのアプリを表すか分からない。
  4. 2行目はGoogle Chrome Helperで3GB。下にあと8つのヘルパー行。手で足して11GBくらいに。
  5. 残りの50GBを依然説明できず、昨日に巻き戻せない。
  6. 諦め、「バックグラウンドアップデート」を責め、進む。

昨日ovaを動かしていた場合

  1. ovaを開き、タイムラインを昨日に遡ってスクラブ。
  2. 「写真」に帰属する午後2時から4時の35GBスパイクを見る。
  3. 電話を消去後にiCloud写真同期を再有効化したのを思い出す。
  4. 1分以内に謎解決。

これがギャップ。アクティビティモニタはスナップショット。ovaは記録。

ovaを動かしてみる

一目で分かるメニューバー通信量モニター——ローカル、署名済み、約3MB。

macOS用ダウンロード

アクティビティモニタが依然正しいツールなとき

公平に。アクティビティモニタがよくし、ovaが試みもしない仕事があります:

  • プロセスを終了。 上部の大きな「X」ボタンは誤動作する何かを強制終了する最速の方法。
  • CPUとメモリのフォレンジック。 アクティビティモニタのCPUとメモリタブは詳細で無料。
  • 一回限りのチェック。 「このアプリは今ネットワークと話しているか?」——アクティビティモニタへの単一のCmd+Tabが即座に答え、インストール不要。
  • プロセスツリーナビゲーション。 表示メニュー下の階層ビューは親/子PIDを理解するのに本当に有用。

ニーズがフォレンジック、散発的、ネットワークトラフィック以外の何かなら、組み込みツールは問題なし。覗くために何もインストールする必要なし。アクティビティモニタの通信量ビューは、答えるよう設計されなかった問いを尋ね始めるときだけ問題になります。

ovaをインストールするなら実用的なワークフロー

妥当な2ツールワークフローはこんな感じ:

  1. メニューバーにova、常に動いている。 通信量のライブと過去のビュー。
  2. DockかSpotlightにアクティビティモニタ、オンデマンドで開く。 「カーネルでまさにこの瞬間何が起きているか」のメス。

ovaが「Dropbox」から40 Mbpsアップロードスパイクを表示するが、特定のDropboxヘルパーPIDが責任あるか知りたいときは、アクティビティモニタにジャンプして確認。アクティビティモニタがnsurlsessiondの巨大な送信したバイトカウントを表示するが、どのアプリがそれを引き起こしたか知りたいときは、ovaの履歴にジャンプしてその時アクティブだったものを見る。

次に何をするか

アクティビティモニタのネットワークタブを名前でフィルタしようとしたことがないなら、まずそれをして——5分の手動調査で十分なこともあります。週に1回以上それをしているなら、組み込みツールは問題に正しい形ではない。

短い次のステップリスト:

  1. アクティビティモニタ → ネットワークを開き、送信したバイトでソート。トップ3行を記録。
  2. ヘルパープロセスを所有するアプリを特定。(トップ5の3つが認識不能なら、それがあなたのサイン。)
  3. ovaをインストールし、メニューバーに数日置く。
  4. 次に通信量が誤動作するとき、答えを見つけるのにどれだけ時間がかかるか見る。

アクティビティモニタは理由があってmacOSの一部——動き、信頼でき、コストゼロ。継続的通信量モニターであるよう設計されなかっただけで、アクティビティモニタの通信量タブが1つだと装うのは多くのデバッグ時間を無駄にします。