1.
之前的猜測分三種
(a) 因為運算量太大,wiki有明確禁止這件事 (有正常播出來有正常收到但來不及算)
(b) DPDK開 trace 檔的 function 不同 (有正常播出來但DPDK來不及收)
(c) Tracereplay 或 Tcpreplay 其他問題 (沒有正常播出來)
針對 (a).
另外做了一個實驗,用 tcpreplay with mawi2003_slammer.pcap (單位時間內封包數 / Flow 數相對較少)
在15秒區間內的封包數跟 Flow 少時,就不會只停在第一個區間就沒辦法往下繼續做了。
但每個區間的 Flow 數目大約只有 11K , 而非原本約 512K 的大小。
平行運算 ?? 加大Queues ??
更多的線程不一定會導致更好的性能
在並行libtrace程序中總是會有至少一個處理線程,當libtrace停止從輸入源讀取數據包時,每個處理線程將自動停止。
每個線程應該有自己的本地數據包和字節計數器,所以我們不必與其他線程競爭來更新計數器。
tracestats -t 4 dpdk:0000:03:00.0 Will be 4 Threads runnung in 100% (圖片見文章下方)
針對 (b).
目前看 Libtrace example code Line 189 ~ 191 顯示開檔的使用方式是相同的,Wiki文件也沒有另外說明DPDK有其他的開trace檔方式,
用TraceSummary收封包數目也是正確的,
不確定,但猜測不會是 (b) 的問題。
Wiki 也說這邊只能用一個 instance , 把 HugePage 從 256MB 改成 4096MB 也沒有幫助, 且似乎無法更改 Core 數目,
且Core只做 packet pulling 的話應該也不能執行其他程序如 Hashing ,故就算更改 Core 數目對結果應該也不影響。
針對 (c).
同樣播一個 CADIA trace (equinix-sanjose.dirA.20120119-130000-mac.UTC.anon.pcap),量測時間秒數、接收到的封包數與大小。
Wireshark 或 Tshark 都因封包量太大無法正常量測。這邊直接用 ifconfig 的 counter算。
TraceReplay 在每秒封包數很多狀況下,在不同效能電腦下播送的結果不同。
tracereplay ~121 secs (Host2 ->)
ens1f1 Link encap:Ethernet HWaddr 00:1b:2b:1c:2d:11
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20406246 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7813304299 (7.8 GB) TX bytes:20666 (20.6 KB)
tracereplay ~104 secs (Host2 <-) (封包數目沒有少!!)
eth2 Link encap:Ethernet HWaddr 00:60:dd:45:16:13
inet addr:10.0.0.101 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::260:ddff:fe45:1613/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:30804780 errors:0 dropped:0 overruns:0 frame:0
TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23598269950 (23.5 GB) TX bytes:8169 (8.1 KB)
tcpreplay ~61 secs (Host2 ->)
ens1f1 Link encap:Ethernet HWaddr 00:1b:2b:1c:2d:11
inet6 addr: fe80::2261:eafc:e11a:7f75/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30804777 errors:0 dropped:0 overruns:0 frame:0
TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1853030504 (1.8 GB) TX bytes:10972 (10.9 KB)
tracereplay re_MAWI_MAC.pcap (Host2 ->)
ens1f1 Link encap:Ethernet HWaddr 00:1b:2b:1c:2d:11
inet6 addr: fe80::c151:4166:d109:3fbf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:68502522 errors:0 dropped:0 overruns:0 frame:0
TX packets:1024 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:38822625789 (38.8 GB) TX bytes:173477 (173.4 KB)
mawi2003_slammer.pcap 用 tracesummary 來做分析。(共1804秒)
4 threads running in 100%。
tracestats -t 4 offline pcap。