偶爾使用Mac時,我會發現互聯網連接速度變慢。使用活動監視器,我可以看到這是因為某些東西正在以我的連接可以支持的全速下載數據---但是我不知道如何知道是什麼原因。這可能是由幾種不同的情況造成的(Dropbox同步;一些應用程序進行了自動更新;最近一次是我忘記了的瀏覽器選項卡中的視頻緩衝),因此非常有用的方法是告訴哪個應用負責網絡使用。在OS X中有可能發生這種情況嗎?理想情況下,我正在尋找免費的解決方案。 (命令行是可以的。)如果可以,我將使用Snow Leopard。
偶爾使用Mac時,我會發現互聯網連接速度變慢。使用活動監視器,我可以看到這是因為某些東西正在以我的連接可以支持的全速下載數據---但是我不知道如何知道是什麼原因。這可能是由幾種不同的情況造成的(Dropbox同步;一些應用程序進行了自動更新;最近一次是我忘記了的瀏覽器選項卡中的視頻緩衝),因此非常有用的方法是告訴哪個應用負責網絡使用。在OS X中有可能發生這種情況嗎?理想情況下,我正在尋找免費的解決方案。 (命令行是可以的。)如果可以,我將使用Snow Leopard。
您可以使用 Little Snitch 或 HandsOff 。它們是出色的防火牆,並且都具有“網絡監視器”功能,可以完成此任務:
Little Snitch 包括網絡監視器,顯示所有傳入的詳細信息
菜單欄中的狀態圖標提供了當前網絡活動的摘要,並在出現新的流量事件時自動彈出帶有更全面信息的監視窗口。Hands Off 是用於監視和控制應用程序對網絡和磁盤的訪問的應用程序。能夠監視通常不會引起注意的活動,使您能夠就私人信息的傳輸做出明智的決定,從而避免了機密信息的洩露。
網絡監視器包括: Little Snitch (左), HandsOff (右) sup>
一個免費的內置cli解決方案(不幸的是,它沒有包含在Snow Leopard中)是 nettop。 nettop按程序和端口將流量分組,並測量各種網絡統計信息。
幾乎沒有其他程序可以捕獲和測量流量( iftop, wireshark, tcpdump),但他們不知道原始pid。要建立連接,您應該使用 netstat。
您可以嘗試以下這種 dtrace
單行代碼:
sudo dtrace -n'syscall :: recvfrom:return {@ [pid,execname] = sum( arg0); }'
讓它運行一段時間,然後按Control-C。它將打印從套接字讀取的字節數摘要,這些摘要分佈在各個進程之間。要獲取更詳細的視圖,請將 sum
替換為 quantize
。或者只是為了查看套接字讀取的次數,請用 count
替換 sum
。
免責聲明:我只在Lion上嘗試過此方法,但AFAIK效果不佳SL和Lion之間出現了dtrace-ability的變化。
sudo fs_usage -f network
將為您提供所有應用程序(和進程)的所有網絡訪問權限。通常,創建大量流量的過程是輸出中最常出現的過程。
“ DTrace書”具有執行此操作的腳本 soconnect.d。
複製“ Mac OS X”版本,將其粘貼到文本文件中,然後使用 sudo dtrace -s soconnect.d
從終端運行它。