這一篇是利用 Pktgen 來測試網路裝置的效能,如果你完全不知道什麼是 Pktgen 可以先從這一篇來了解 Pktgen 簡介 – https://benjr.tw/93300 以及 Pktgen 封包的傳送與接收 – https://benjr.tw/93394
簡略了設定方式,主要是從 System A (TX) -> System B (RX) 的網路效能如何.
- count 1000 傳送封包次數
- min_pkt_size: 64 最小封包
- max_pkt_size: 9000 最大封包
- src_mac: 00:0c:29:06:a1:f9 (System A)
- dst_mac: 00:0c:29:77:5a:56 (System B)
執行結果如下:
root@ubuntu:~# cat /proc/net/pktgen/eth0 Params: count 1000 min_pkt_size: 64 max_pkt_size: 9000 frags: 0 delay: 0 clone_skb: 0 ifname: eth0 flows: 0 flowlen: 0 queue_map_min: 0 queue_map_max: 0 dst_min: dst_max: src_min: src_max: src_mac: 00:0c:29:06:a1:f9 dst_mac: 00:0c:29:77:5a:56 udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9 src_mac_count: 0 dst_mac_count: 0 Flags: Current: pkts-sofar: 1000 errors: 0 started: 2015028695039us stopped: 2015028715432us idle: 98us seq_num: 1001 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 cur_saddr: 0x844d200a cur_daddr: 0x0 cur_udp_dst: 9 cur_udp_src: 9 cur_queue_map: 0 flows: 0 Result: OK: 20393(c20294+d98) nsec, 1000 (1064byte,0frags) 49036pps 417Mb/sec (417394432bps) errors: 0
執行後的 Result: OK: 20393(c20294+d98) nsec, 1000 (1064byte,0frags)
49036pps 417Mb/sec (417394432bps) errors: 0
可以看到測試結果 OK
測試時間 20393(c20294+d98) nsec (u 10負 6 次方,m:1e-3 u:1e-6 n:1e-9)
傳送封包數 1000,以及封包大小 1064byte,以及是否有破碎的封包 0 frags
每秒傳送封包數 49036pps(package per second)
每秒傳送多少封包 417Mb/sec
以及是否有錯誤 errors: 0
pps: package per second 以及 bps: bit per second 的效能算法如下
- Throughput = packets received / end time − start time (pps: package per second)
=1000 / 20393(c20294+d98) nsec 答案就是 49036pps - Throughput = bytes received × 8(Bytes -> Bits) / end time − start time (bps: bit per second)
=1000*1064*8(Bytes -> Bits)/20393(c20294+d98) nsec 答案就是 約 417394432bps
我們還可以透過設定不同的 package size (指定 min_pkt_size 以及 max_pkt_size) 來測試看看你的網路裝置在不同情況下的效能如何.也可以同時從 System B 打回 System A 看看 System A(RX) 與 System B(TX)效能如何.
沒有解決問題,試試搜尋本站其他內容
3 thoughts on “Pktgen 效能測試”