macOSでネットワーク使用量をリアルタイムに見る方法
macOSでネットワーク使用量をリアルタイムに把握する方法。多くの手段がなぜ誤解を招くのか、本当に役立つ常時表示の作り方を解説します。
- macOS
- Bandwidth
- Network monitoring
- Tutorial
「リアルタイム」はツールによって異なるものを意味する言葉の1つ。トレーディングアプリはマイクロ秒を意味する。天気アプリは「過去5分」を意味する。macOSでリアルタイムネットワーク使用量を見たいとき——固着したアップロードをデバッグ、設定変更が効いたか確認、どのタブが通信量を叩いているか発見——人間スケールのイベントを追跡するに十分速いアップデートが必要。約1秒に1度がスイートスポット。速いとノイジー、遅いとスパイクを逃す。
これがmacOSが出荷するツールでそこに到達する方法、各々が実際何を表示するか、「リアルタイム」がどこに重要なトレードオフを隠しているかのツアー。
「リアルタイム」が実際必要とするもの
リアルタイムに感じるネットワークモニターは3つのことをしなければなりません:
- カーネルを十分頻繁にサンプリング。 macOSは
nettopが使うのと同じメカニズム(PF_SYSTEM/PF_SYSTEM_NDRソケット、ルート情報、プロセス会計)経由でプロセス別バイトカウンタを公開。0.1Hzでのサンプリングは遅く感じる。10HzでのサンプリングはCPUをスパイク。約1Hzが標準。 - デルタを計算。 生のカウンタはプロセス起動以来の累積バイト。レートを得るには、現在のサンプルから前のサンプルを引き、経過時間で割る。
- 結果を滑らかに。 ネットワークトラフィックは秒以下の時間スケールでバースティ。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など)は親アプリの下に折りたたみ戻されるので、行にわたって頭の中で合計する必要なし。
メニューバーモニターが他に与えないものを与えるもう1つのもの: 履歴。リアルタイムは絵の半分。もう半分は「ラップトップが熱くなった昨日午後2時47分にレートはいくつだったか?」ローカル時系列を保つモニターはそれに答えられる。nettopはできない。
メニューバーでリアルタイム
1Hzでサンプリングし履歴をローカル保存するアプリ別通信量モニター。約3MB、署名済み、アカウントなし。
通信量ではなくレイテンシは?
一般的な混乱: 「リアルタイムネットワーク使用量」は時に秒あたりバイトを意味し、時にパケット往復レイテンシを意味する。異なる問題、異なるツール。
- 通信量(バイト/秒): アクティビティモニタ、nettop、ova。
- レイテンシ(ms往復):
ping、mtr、iputils、ジッタとパケットロスを表示するネットワークユーティリティツール。
ビデオ通話が断続的なら、通信量は問題ではないかも——レイテンシかパケットロス。通信量ツールはそれを教えません。
クイックレイテンシチェックには:
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でリアルタイムネットワーク使用量を見るには:
- クイックスポットチェック: ターミナルで
nettop -P -d。組み込み、インストールなし。 - システムビュー: アクティビティモニタ → ネットワークタブ。累積のみ、リフレッシュ制限。
- 常時可視のアプリ別レート: ovaのようなメニューバーモニター。1秒サンプリング、ヘルパー折りたたみ、ローカル履歴。
リアルタイムはアンビエントなとき最も有用。「常時オン」のコストはゼロ近くであるべき——CPU 1%未満、テレメトリなし、クラウド往復なし。ovaは約3MB、macOS 14以降で動作、Apple SiliconとIntelをサポート、1Hzでサンプリング、すべてのデータバイトをMacに保つ。買い切り、生涯アップデート、14日返金。