在tcpdump時避免dropped by kernel - Linux

Table of Contents

在跑tcpdump時如果系統load太大 (ex.正在跑flash...應該猜得出來我要幹嘛XD?
會造成tcpdump來不及去讀回buffer而被kernel覆蓋過去

# tcpdump -np -ieth0 -B1024 -wlog #這裡的-B 是增加buffer size, 好像沒用?
31400 packets received by filter
62 packets dropped by kernel

減它一點nice?
# nice -n-10 tcpdump -B1024 -i eth0 -nv -wlog
結果還是有lost

會不會是firefox的time slice太大,來不及釋出CPU?
# taskset -apc 0 `pgrep firefox`
# sudo nice -n-10 taskset -ac 1 tcpdump -B1024 -i eth0 -nv -wlog
還是lost....

我現在只能靠
iptables -I INPUT 1 -ieth0 -j TEE -gateway <machine in eth1>
來收才不會有dropped pocket

想問為什麼會這樣(renice+cpuset還不夠?)
有何解? 畢竟不是每天都有兩台電腦可以用...
(除了fiddler)

--

All Comments