返回博客
·8 分钟阅读·productdevbook

活动监视器网络标签页的隐藏技巧

活动监视器的网络功能比一般人以为的多。本文带你逐项了解那些真正派得上用场的列、排序与右键菜单。

  • macOS
  • Network monitoring
  • Tutorial
  • Tools

多数人打开活动监视器、点网络标签页、看到五列、按"发送字节数"排序,然后关掉。那是里面 20% 的东西。活动监视器的网络标签页有隐藏列、Dock 图标图、能耗影响集成,以及右键菜单——能回答的问题原本你会去找 nettop 解决。这里是把它从一眼瞄工具变成真正有用的活动监视器网络 Mac 技巧巡礼。

我也会诚实指出它什么时候不够——因为确实会,那是专用带宽监控值得的地方。

Mac 活动监视器网络视图在哪

打开活动监视器(Spotlight 搜"活动监视器"),点 网络 标签页。默认列:

  • 进程名
  • PID
  • 发送字节数
  • 接收字节数
  • 发送的数据包
  • 接收的数据包
  • 用户

那是表面视图。按 发送字节数 排序看谁在上传,接收字节数 看下载。值是从进程启动以来累计——跟 nettop 同样的坑。一个长寿的 cloudd 即使空闲看起来也巨大。

窗口底部有图和合计。图默认显示每秒数据包数;把下拉切到 数据 看更有用的每秒字节视图。

值得启用的隐藏列

右键任何列表头看可用的列。或者用菜单:显示 → 列。除了默认外,我觉得真正有用的:

发送数据/秒 和 接收数据/秒

每秒字节,实时计算。这给你速率而不是合计——对"现在谁在拉带宽"有用得多。怀疑下载在发生时按 接收数据/秒 排序。

发送字节数(累计)和 接收字节数(累计)

这些跟默认稍不同——它们包含 Apple 对那个进程的整个生命周期统计。常常是同一数字,偶尔不是,看进程怎么向内核注册。

TCP RTT 和 RTT 方差

进程 TCP 连接上的往返时间。调查为什么某个应用感觉卡时有用。一个 Slack 进程对它同步端点显示 240 ms RTT,跟一个 Slack 进程显示 18 ms RTT 但还是慢,是不同问题。

架构

Apple Silicon vs Intel 翻译。严格说不算网络列,但在这里可见——怀疑 Rosetta 2 进程因为老二进制在网络上行为不当时有用。

检查、Dock 图标、能耗及其他技巧

默认基本上没碰到能用的东西。少数技巧让网络标签页变成真正有用。

右键菜单

右键任何进程行看:

  • 检查 — 打开一个有三个标签的窗口:内存、统计信息、打开的文件和端口
  • 采样进程 — 捕获栈跟踪,对诊断进程在喋喋不休时在做什么有用
  • 退出 / 强制退出 — 发现失控时方便

检查里的 打开的文件和端口 标签是被低估的。它列出该进程打开的每个文件描述符,包括 socket——带远端地址和端口。这本质是那一个 PID 的 lsof,在一个能滚动的窗口里。对"这个进程在跟什么通信?"有用。

Dock 图标图

活动监视器自己能把它的 Dock 图标显示成实时网络图。显示 → Dock 图标 → 显示网络用量。现在活动监视器的 Dock 图标变成你聚合网络流量的小直方图。配合 保留在 Dock 中,你就有了免费、始终可见的带宽指示器——只要你接受活动监视器一直跑。

它比专用菜单栏应用吃更多内存,图小且不按应用,但如果你不想要第三方工具就能用。

能耗影响集成

能耗 标签页有一列叫 平均能量影响,纳入网络活动,特别是在电池上。一个能量影响高、在网络标签页里也排高的进程,通常在做低效的事——长轮询循环、不批量、不压缩。

交叉引用能耗和网络标签页是笔电上回本的技巧之一。如果你电池在融化、能量影响列表头是 clouddMailMusic,或任何同步重的进程,网络标签页告诉你它们是真在动字节还是只是 CPU 忙。

排序,然后点 "i"

网络标签页按 接收数据/秒 排序。识别元凶。点工具栏里的 "i"(信息)按钮——跟检查菜单一样——切到 打开的文件和端口 标签。你现在在看那个进程打开的每个 socket,带远程 IP 和端口。从原因(哪个应用)到细节(哪些端点)两次点击。这是活动监视器最接近真正网络调试工具的程度。

按用户过滤

如果你 Mac 有多个用户账号,用户 列让你能排序看每个用户进程在做什么。在家庭 Mac("是不是孩子的 Minecraft 客户端造成的?")和共享开发机器上有用。

看 ova 实战

一眼可瞄的菜单栏带宽监控——本地、签名、约 3 MB。

下载 macOS 版

Mac 活动监视器网络视图什么时候不够

它是通用工具,你能很快感觉到边缘。

没历史

nettop 同样的空缺。网络标签页显示现在和自启动以来的合计。如果尖峰时你没开着,你就没看到。没有滚动窗口、没有昨天下午分钟级视图。

不归并辅助

你会看到 Google Chrome Helper (Renderer)(GPU)(Plugin) 作为单独行,跟 nettop 一样。"Chrome" 的接收字节数列分散在十几行。自己加和。

自启动累计是误导的

跑了三天的进程会让今早启动、当前用 100 倍带宽的那个相形见绌。接收数据/秒 列帮上忙但默认不显示。

没菜单栏存在

活动监视器要一个窗口。即使 Dock 图标图也要应用跑着且 Dock 可见。没有从任何地方一眼可瞄的指示器。

为"是不是有问题"设计,不是为"什么算正常"

你在感觉不对劲时打开活动监视器。你不为检查这周流量规律是不是跟上周一样而打开它。那不是负面评价——只是不同工作。

按应用历史
ova 保留可拖动时间线,所以你能回答"这个应用昨天下午 2:47 在做什么"。活动监视器的网络标签页设计上就做不了。

什么时候用什么

一个简单决策树:

  1. "现在有没有东西在用我的网络?" — 菜单栏应用。ova 在菜单栏显示当前速率;点击看按应用分解。
  2. "哪个进程现在在锤上传?" — 活动监视器网络标签页,按 发送数据/秒 排序。
  3. "这个进程在跟什么通信?" — 活动监视器 → 右键 → 检查 → 打开的文件和端口。或 lsof -i -p <PID>
  4. "昨天下午 3 点谁在用我的网络?" — 需要历史。活动监视器做不了。用持久化数据的工具。
  5. "我风扇响是不是因为网络活动?" — 活动监视器能耗标签页,再交叉引用网络标签页。
  6. "线上是什么?"tcpdump 或 Wireshark。活动监视器不到那个深度。

几件偷偷的事

  • 设置里的更新频率 影响所有标签页。设为"经常(1 秒)"拿最实时数据,"较少(5 秒)"如果你发现持续重绘让你分心。
  • 显示菜单下的 显示非活跃进程 揭示已被杀但其计数还在的进程。有时对取证有用。
  • 显示菜单下的 保存默认过滤器 跨启动保存你在搜索框里输的过滤器。
  • CPU 和网络标签页有一个隐藏集成:CPU 0% 但接收字节数高的进程几乎肯定是内核侧 I/O(想想文件复制、AirDrop 接收)。CPU 100% 而零网络的进程是 CPU bug,不是网络 bug。
  • kill -SIGINFO 发给某些进程(如 dd 和一些 Apple 守护进程)让它们把进度记到统一日志。活动监视器不会告诉你,但调查长跑任务时跟网络标签页配对。

收尾

Mac 活动监视器网络视图比它默认列暗示的更有能力。启用 发送数据/秒 和 接收数据/秒、学右键检查到打开的文件和端口的路径、想要免费的常驻视图就开 Dock 图标图,你不用装任何东西就有了能用的网络调试界面。

要历史、辅助归并和不要求窗口的菜单栏存在,装 ova——约 3 MB,macOS 14 及以上,Apple Silicon 和 Intel,约 1 Hz 采样,所有数据本地。两个都用:活动监视器看"现在详细发生了什么",ova 看"过去发生了什么、什么算正常"。