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

macOSでネットワーク使用量をリアルタイムに見る方法

macOSでネットワーク使用量をリアルタイムに把握する方法。多くの手段がなぜ誤解を招くのか、本当に役立つ常時表示の作り方を解説します。

  • macOS
  • Bandwidth
  • Network monitoring
  • Tutorial

「リアルタイム」はツールによって異なるものを意味する言葉の1つ。トレーディングアプリはマイクロ秒を意味する。天気アプリは「過去5分」を意味する。macOSでリアルタイムネットワーク使用量を見たいとき——固着したアップロードをデバッグ、設定変更が効いたか確認、どのタブが通信量を叩いているか発見——人間スケールのイベントを追跡するに十分速いアップデートが必要。約1秒に1度がスイートスポット。速いとノイジー、遅いとスパイクを逃す。

これがmacOSが出荷するツールでそこに到達する方法、各々が実際何を表示するか、「リアルタイム」がどこに重要なトレードオフを隠しているかのツアー。

「リアルタイム」が実際必要とするもの

リアルタイムに感じるネットワークモニターは3つのことをしなければなりません:

  1. カーネルを十分頻繁にサンプリング。 macOSはnettopが使うのと同じメカニズム(PF_SYSTEM/PF_SYSTEM_NDRソケット、ルート情報、プロセス会計)経由でプロセス別バイトカウンタを公開。0.1Hzでのサンプリングは遅く感じる。10HzでのサンプリングはCPUをスパイク。約1Hzが標準。
  2. デルタを計算。 生のカウンタはプロセス起動以来の累積バイト。レートを得るには、現在のサンプルから前のサンプルを引き、経過時間で割る。
  3. 結果を滑らかに。 ネットワークトラフィックは秒以下の時間スケールでバースティ。1秒の窓ですでにそのほとんどを滑らかにするが、UIは通常、表示数字が0から50 MB/sにそして0に毎ティック跳ねないよう追加の移動平均を適用。

滑らかにしないツールはピクピクと感じる。積極的にスムージングしすぎるツールは遅延を感じる。スイートスポットは2〜3サンプル指数平均付きの1秒サンプル。

ツール1: アクティビティモニタ

アクティビティモニタのネットワークタブは数秒ごとに更新。重要な列:

  • 送信したバイト/受信したバイト — プロセス起動以来累積。
  • 送信したパケット/受信したパケット — 同じ、パケット単位で。
  • 読み込んだバイト/秒秒あたりレート(表示 → 列でこの列を有効化する必要があるかも)。

下部パネルはシステム全体のレートグラフを表示。グラフをパケットとデータの間で切り替え可能。

アクティビティモニタが得意なこと:

  • 起動以来最も多くの累積データを使った人による視覚的素早いソート。
  • 妥当なシステム全体レートグラフ。

得意でないこと:

  • 更新レート。既定リフレッシュは5秒(表示 → 更新頻度で構成可能)。5秒では短いスパイクを完全に逃す。
  • ヘルパー折りたたみ。Chromeは7+の別個のプロセスとして現れる。頭の中で足す必要。
  • 履歴。閉じるとレートデータは消える。

ツール2: nettop

nettopはmacOSが出荷するリアルタイムプロセス別ネットワークモニターに最も近いもの。最も有用な呼び出し:

nettop -P -t wifi -d
  • -Pは行ごとにプロセス名を表示(さもなければPIDでグループ化、読みにくい)。
  • -t wifiはWi-Fiインターフェースにフィルタ。イーサネット用に-t wiredを使用。
  • -dは秒あたりデルタを表示。このフラグなしでは累積合計が見え、頭の中で引き算する必要。

-l 1を渡すと単一のサンプルを印刷して終了し、スクリプト化に有用。

重要な列:

  • bytes_in / bytes_out — 最後のサンプル窓で受信および送信したバイト。
  • interface — どのNICがトラフィックを運んでいるか。
  • state — TCP状態(Established、TimeWait、Listenなど)。

nettopはアクティビティモニタより速く、より粒度が細かく、何が起きているかについてより正直。短所:

  • ターミナルUI。それにウィンドウを捧げずに他の作業をしながら可視に保てない。
  • 履歴なし。nettopを終了、最後の30秒を失う。
  • ヘルパー折りたたみなし。Chromeのヘルパーが別行として現れる。
  • 更新レートは既定で1秒。速いとターミナルのちらつきが増える。

ツール3: メニューバーモニター

メニューバー通信量モニターが存在する理由は、「リアルタイム」がアンビエントなときに最も有用だから。アプリを開かず、タブを切り替えず、コマンドを実行せず——考えずにレートを見たい。メニューバーはmacOSでこの基準を満たす唯一のUI表面: 常に可視、ほぼゼロの画面コスト、ワンクリックで展開。

ovaはこれを中心に作られています。約1Hzでサンプリング、メニューバーに現在の上下レートを表示、クリックで現在の通信量でソートされたアプリ別リストに展開。ヘルパープロセス(Slack Helper、Google Chrome Helper、Discord Helperなど)は親アプリの下に折りたたみ戻されるので、行にわたって頭の中で合計する必要なし。

1Hzでサンプリング
ovaはプロセス別トラフィックを約1秒に1回サンプリング——実際にしていることを追跡するに十分速く、アイドルCPUを0.3%未満に保つに十分遅い。

メニューバーモニターが他に与えないものを与えるもう1つのもの: 履歴。リアルタイムは絵の半分。もう半分は「ラップトップが熱くなった昨日午後2時47分にレートはいくつだったか?」ローカル時系列を保つモニターはそれに答えられる。nettopはできない。

メニューバーでリアルタイム

1Hzでサンプリングし履歴をローカル保存するアプリ別通信量モニター。約3MB、署名済み、アカウントなし。

macOS用ダウンロード

通信量ではなくレイテンシは?

一般的な混乱: 「リアルタイムネットワーク使用量」は時に秒あたりバイトを意味し、時にパケット往復レイテンシを意味する。異なる問題、異なるツール。

  • 通信量(バイト/秒): アクティビティモニタ、nettop、ova。
  • レイテンシ(ms往復): pingmtriputils、ジッタとパケットロスを表示するネットワークユーティリティツール。

ビデオ通話が断続的なら、通信量は問題ではないかも——レイテンシかパケットロス。通信量ツールはそれを教えません。

クイックレイテンシチェックには:

ping -c 30 1.1.1.1

これは30 ICMPエコーを送る。出力は最小/平均/最大往復とパケットロスを表示。0%ロスで30ms未満は典型的な家庭利用に健康。

リアルタイムモニタリングのトレードオフ

精度を気にするなら知るべきいくつか:

サンプリング vs カウント

nettopとほとんどのメニューバーツールはサンプリング。それは、サンプル間の200ms窓内に開いて100KB転送して閉じるTCP接続がモニターに現れないかもしれない——次のサンプルに合算合計の一部として折り込まれます。ほとんどの「重いアプリを見つける」ユースケースでは問題ありません。トラフィックフォレンジックにはtcpdumpやWiresharkのようなパケットキャプチャツールを使う。

プロセス別 vs インターフェース別

プロセス別カウンタはmacOSのプロセス会計層で集計。確立されたTCP/UDPフローには正確だが、一部のカーネルレベルトラフィック(KEXT駆動VPNトンネル、特定のネットワーク拡張)を逃す。netstat -ibからのインターフェースレベルカウンタは、このオーバーヘッドのため常にプロセス別カウンタの合計より高くなる。

Wi-Fi vs イーサネット

Wi-Fiとイーサネット両方が接続されているなら、すべてのモニターはどちらを報告するか知る必要。アクティビティモニタは既定で合計。nettopには-tフラグ。ovaは別個に表示するので、トラフィックが回線または空気を通っているか分かります。

「リアルタイム」がオーバーキルなとき、そうでないとき

リアルタイムモニタリングは正しいツールです:

  • 固着した転送をデバッグ中。
  • 設定変更が動いたか検証中。
  • 暴走プロセスを見つけようとしている。
  • テザリング中で何がデータを食らっているか知る必要。

間違ったツールです:

  • 月次データ合計を知りたい——代わりに日次または週次集計を使う。
  • しきい値違反で警告したい——秒別ではなく日別上限を設定。
  • 昨日起きたことを調査中——ライブではなく過去ビューを使う。

良いモニターは両モードを提供。ovaはする——ライブメニューバーと過去のトラフィックのスクラブ可能なタイムライン。2ビューは異なる問いに答え、両者の間でバウンスすることに気づく。ライブビューは何が起きているかを教える。過去ビューは何か興味深いことが始まったとき何が起きていたかを教える。どちらのビューも単独では、通常の週がMacユーザに投げる通信量問いの完全セットに十分でない。

しばしば現れるパターン: ライブビューでスパイクに気づくが、調査するためにクリックインする頃にはスパイクは消えている。過去ビューがあなたを救う。最後の60秒を見て、ちょうど点灯したアプリ別行を見つけ、ライブの絵がベースラインに戻っていても答えを持つ。

まとめ

macOSでリアルタイムネットワーク使用量を見るには:

  1. クイックスポットチェック: ターミナルでnettop -P -d。組み込み、インストールなし。
  2. システムビュー: アクティビティモニタ → ネットワークタブ。累積のみ、リフレッシュ制限。
  3. 常時可視のアプリ別レート: ovaのようなメニューバーモニター。1秒サンプリング、ヘルパー折りたたみ、ローカル履歴。

リアルタイムはアンビエントなとき最も有用。「常時オン」のコストはゼロ近くであるべき——CPU 1%未満、テレメトリなし、クラウド往復なし。ovaは約3MB、macOS 14以降で動作、Apple SiliconとIntelをサポート、1Hzでサンプリング、すべてのデータバイトをMacに保つ。買い切り、生涯アップデート、14日返金。