Answers:
您可以尝试以下dtrace
一种方法:
sudo dtrace -n 'syscall::recvfrom:return { @[pid,execname] = sum(arg0); }'
让它运行一段时间,然后按Control-C。它将打印从套接字读取的,在进程之间分配的字节数的摘要。有关更详细的视图,请替换sum
为quantize
。或者只是为了查看套接字读取次数,请替换sum
为count
。
免责声明:我仅在Lion上尝试过此方法,但AFAIK在SL和Lion之间的dtrace-ability方面未发生重大变化。
您可以使用Little Snitch或HandsOff。它们是出色的防火墙,并且都具有“网络监视器”功能,可以完成此任务:
Little Snitch包含一个网络监视器,显示所有传入和传出网络流量的详细信息。
菜单栏中的状态图标提供了当前网络活动的摘要,并在出现新的交通事件时自动弹出带有更全面信息的监视窗口。Hands Off是一种用于监视和控制应用程序对网络和磁盘的访问的应用程序。能够监视通常不会引起注意的活动,使您能够就私人信息的传输做出明智的决定,从而避免了机密信息的泄漏。
网络监控器:Little Snitch(左),HandsOff(右)
nettop是免费的内置cli解决方案(不幸的是,它不包含在Snow Leopard中)。nettop按程序和端口对流量进行分组,并测量各种网络统计信息。
很少有其他程序可以捕获和测量流量(iftop,wirehark,tcpdump),但是它们不知道起源的pid。要建立连接,您应该使用netstat。
nettop
对我来说是新的。看起来很方便。
sudo fs_usage -f network
将为您提供所有应用程序(和进程)的所有网络访问权限。通常,创建大量流量的过程是最常出现在输出中的过程。
“ DTrace书”具有一个脚本soconnect.d,可以执行此操作。
复制“ Mac OS X”版本,将其粘贴到文本文件中,然后使用从终端运行它sudo dtrace -s soconnect.d
。