兩個月前做的事, 現在已忘了細節, 留些連結備忘。
從 system call 下手
networking - How to measure network performance (how to benchmark network protocol) 提到可以用 strace 抓網路相關的 system call 來了解傳輸量。概念不錯, 但實作用起來很麻煩, 有以下的問題:
- socket 也是 file descriptor, 不只可以用 send/recv 相關函式, 也可以用 read/write。要做到完全正確, 要追蹤開啟的 fd 是否為 socket
- 這個傳輸量不等於真正的傳輸量, 因為 TCP 有可能重傳 packet。
優點大概是可以量得很細, 像是各 thread 的傳輸量如何。若 thread 各自有特定的工作, 也許會有幫助。
從網卡下手
tcdpdump:
- A Tcpdump Tutorial and Primer 超詳細的介紹。
- How to read Tcpdump Output 補足上篇的不足, 提及如何解讀輸出結果。
看完的感覺是, wireshark 似乎不如 tcpdump 強? 附帶一提, tcpdump 名為 "tcp"dump, 但是是監控網卡, 實際上可看各種不同 protocol, 不只 tcp, 滿容易使用的。
IPTraf
附 screenshot 的簡短介紹: 唉呦~MIS先生: 好用的流量監控程式--IPTraf, 可觀看即時流量。很容易操作, 功能也很彈性。不過若要用在反覆執行的測量程式, 可能還是配合 tcpdump 再寫分析的 script 比較方便。
沒有留言:
張貼留言