生活随笔
收集整理的這篇文章主要介紹了
SwitchNAT 测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
測試環境:
PC1:Windows10 iperf3
PC2:Ubuntu iperf3
都裝有千兆網卡,直連的iperf速度是935Mbps。
因為TXRX兩個方向的數據是差不多的,下面的測試數據只給出平均值。
?
1.1????? TPLINK 841N
1.1.1??? Switch測試
?
TPLIN841N使用了Marvell的88E6060芯片,使用了dsa技術,在Openwrt下面,所有的包都是軟件網橋處理的。
?
l? 內核大量打印到終端
默認在內核里面的網橋代碼加入了不少的打印,測試的時候會吐出大量的日志。測試結果是1Mbps。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
? | Mem:?22572K?used,?38140K?free,?72K?shrd,?2612K?buff,?6752K?cached? CPU:???0%?usr???0%?sys???0%?nic???7%?idle???0%?io???0%?irq??92%?sirq??????????? Load?average:?1.61?0.97?0.95?7/33?1459????????????????????????????????????????? ^[[7m??PID??PPID?USER?????STAT???VSZ?%VSZ?%CPU?COMMAND^[[0m???????????????????? 1000?????1?root?????R?????1184???2%??29%?/usr/sbin/ntpd?-n?-S?/usr/sbin/ntpd-h? 1422?????1?root?????R?????1636???3%??20%?/usr/sbin/hostapd?-P?/var/run/wifi-ph? 1339?????1?root?????R?????1168???2%???5%?/sbin/logd?-S?16????????????????????? 1173?????1?dnsmasq??R?????1040???2%???5%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq???????????????????????????????????????????????????? 1459???513?root?????R?????1188???2%???5%?top?-d?1????????????????????????????? 3?????2?root?????RW???????0???0%???0%?[ksoftirqd/0]???????????????????????? 879?????1?root?????S?????1620???3%???0%?/sbin/netifd????????????????????????? 100?????2?root?????SW???????0???0%???0%?[kworker/0:1]???????????????????????? 1?????0?root?????S?????1520???2%???0%?/sbin/procd?????????????????????????? 960?????1?root?????S?????1504???2%???0%?/usr/sbin/uhttpd?-f?-h?/www?-r?OpenWr? 844?????1?root?????S?????1432???2%???0%?/sbin/rpcd?????? 893?????1?root?????S?????1272???2%???0%?/usr/sbin/odhcpd????????????????????? 513?????1?root?????S?????1188???2%???0%?/bin/ash?--login? 512?????1?root?????S?????1168???2%???0%?/cnblogs/tanhangbo ? ?? 943?????1?root?????S?????1052???2%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro? 6?????2?root?????SW???????0???0%???0%?[kworker/u2:0]??????????????????????? 8?????2?root?????SW???????0???0%???0%?[kworker/u2:1]?? 172?????2?root?????SW???????0???0%???0%?[spi0]????? 99?????2?root?????SW???????0???0%???0%?[kswapd0]???????????????????????????? 340?????2?root?????SW<??????0???0%???0%?[kworker/0:1H]
|
?
可以看到CPU負載很高(Load average),CPU已經沒有資源了。主要的消耗在內核的Softirq部分(92%)。
?
?
l? 關閉內核的打印
?
使用dmesg -n 1關閉內核的打印,發現速率接近理想狀況但不是最完美的。
觀察到CPU資源沒有被消耗完。
?
TP=83Mbps
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
? | Mem:?21380K?used,?39332K?free,?68K?shrd,?2612K?buff,?6744K?cached? CPU:?21%?usr?0%?sys?0%?nic?8%?idle?0%?io?0%?irq?70%?sirq? Load?average:?0.55?0.74?0.91?4/33?1440? PID?PPID?USER?STAT?VSZ?%VSZ?%CPU?COMMAND? 1339?1?root?R?1168?2%?38%?/sbin/logd?-S?16? 1422?1?root?R?1636?3%?21%?/usr/sbin/hostapd?-P?/var/run/wifi-ph? 3?2?root?RW?0?0%?18%?[ksoftirqd/0]? 1440?513?root?R?1188?2%?7%?top?-d?1? 100?2?root?SW?0?0%?6%?[kworker/0:1]? 879?1?root?S?1620?3%?0%?/sbin/netifd? 1?0?root?S?1520?2%?0%?/sbin/procd? 960?1?root?S?1504?2%?0%?/usr/sbin/uhttpd?-f?-h?/www?-r?OpenWr? 844?1?root?S?1432?2%?0%?/sbin/rpcd? 893?1?root?S?1272?2%?0%?/usr/sbin/odhcpd? 1000?1?root?S?1184?2%?0%?/usr/sbin/ntpd?-n?-S?/usr/sbin/ntpd-h? 513?1?root?S?1184?2%?0%?/bin/ash?--login? 512?1?root?S?1168?2%?0%?/sbin/ubusd? 943?1?root?S?1052?2%?0%?/usr/sbin/dropbear?-F?-P?/var/run/dro? 1173?1?dnsmasq?S?1040?2%?0%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq? 6?2?root?SW?0?0%?0%?[kworker/u2:0]? 8?2?root?SW?0?0%?0%?[kworker/u2:1]? 172?2?root?SW?0?0%?0%?[spi0]? 99?2?root?SW?0?0%?0%?[kswapd0]? 340?2?root?SW<?0?0%?0%?[kworker/0:1H]?
|
?
?
l? 徹底關閉內核的打印
?
將代碼內核打印的代碼去掉,發現CPU空閑的資源變多了。
TP=92Mbps,已經可以滿足要求
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
? | Mem:?18376K?used,?42336K?free,?68K?shrd,?1788K?buff,?5540K?cached? CPU:???0%?usr???0%?sys???0%?nic??60%?idle???0%?io???0%?irq??37%?sirq? Load?average:?0.46?0.38?0.16?1/31?1284? ??PID??PPID?USER?????STAT???VSZ?%VSZ?%CPU?COMMAND? 1109?????1?root?????S?????1636???3%???1%?/usr/sbin/hostapd?-P?/var/run/wifi-ph? 3?????2?root?????SW???????0???0%???1%?[ksoftirqd/0]? 1284???448?root?????R?????1176???2%???0%?top? 1148?????1?dnsmasq??S?????1040???2%???0%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq? 99?????2?root?????SW???????0???0%???0%?[kworker/0:1]? 861?????1?root?????S?????1620???3%???0%?/sbin/netifd? 1?????0?root?????S?????1516???2%???0%?/sbin/procd? 882?????1?root?????S?????1272???2%???0%?/usr/sbin/odhcpd? 448?????1?root?????S?????1172???2%???0%?/bin/ash?--login? 965?????1?root?????S?????1172???2%???0%?/usr/sbin/ntpd?-n?-S?/usr/sbin/ntpd-h? 826?????1?root?????S?????1168???2%???0%?/sbin/logd?-S?16? 447?????1?root?????S?????1168???2%???0%?/sbin/ubusd? 920?????1?root?????S?????1052???2%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro? 171?????2?root?????SW???????0???0%???0%?[spi0]? 8?????2?root?????SW???????0???0%???0%?[kworker/u2:1]? 6?????2?root?????SW???????0???0%???0%?[kworker/u2:0]? 98?????2?root?????SW???????0???0%???0%?[kswapd0]? 66?????2?root?????SW<??????0???0%???0%?[bioset]? 65?????2?root?????SW<??????0???0%???0%?[crypto]? ^C339?????2?root?????SW<??????0???0%???0%?[kworker/0:1H]? |
?
?
?
1.1.2??? NAT測試
?
?
設置方法:PC1固定IP,連接到WAN口,PC2連接到LAN口。然后進路由器的命令行固定WAN口的IP。
?
測試結果:
?
LAN-WAN Result = 92Mbps
WAN-LAN Result = 88Mbps
?
可以看到CPU資源被占用了大部分,但是還是有16%的idle。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
? | Mem:?18656K?used,?42056K?free,?76K?shrd,?1788K?buff,?5608K?cached? CPU:???0%?usr???0%?sys???0%?nic??16%?idle???0%?io???0%?irq??82%?sirq? Load?average:?0.00?0.03?0.06?2/33?1535? ??PID??PPID?USER?????STAT???VSZ?%VSZ?%CPU?COMMAND? 1109?????1?root?????S?????1636???3%???5%?/usr/sbin/hostapd?-P?/var/run/wifi-ph? 3?????2?root?????RW???????0???0%???4%?[ksoftirqd/0]? 1535???448?root?????R?????1176???2%???3%?top? 99?????2?root?????SW???????0???0%???1%?[kworker/0:1]? 861?????1?root?????S?????1688???3%???0%?/sbin/netifd? 1?????0?root?????S?????1516???2%???0%?/sbin/procd? 882?????1?root?????S?????1272???2%???0%?/usr/sbin/odhcpd? 965?????1?root?????S?????1172???2%???0%?/usr/sbin/ntpd?-n?-S?/usr/sbin/ntpd-h? 448?????1?root?????S?????1172???2%???0%?/bin/ash?--login? 1425???861?root?????S?????1172???2%???0%?udhcpc?-p?/var/run/udhcpc-wan.pid?-s? 826?????1?root?????S?????1168???2%???0%?/sbin/logd?-S?16? 447?????1?root?????S?????1168???2%???0%?/sbin/ubusd? 920?????1?root?????S?????1052???2%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro? 1379?????1?dnsmasq??S?????1040???2%???0%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq? 1428???861?root?????S??????912???1%???0%?odhcp6c?-s?/lib/netifd/dhcpv6.script? 171?????2?root?????SW???????0???0%???0%?[spi0]? 8?????2?root?????SW???????0???0%???0%?[kworker/u2:1]? 6?????2?root?????SW???????0???0%???0%?[kworker/u2:0]? 98?????2?root?????SW???????0???0%???0%?[kswapd0]? ^C339?????2?root?????SW<??????0???0%???0%?[kworker/0:1H]?
|
?
?
1.2????? XIAOMI MINI
?
?
1.2.1??? Switch測試
?
小米MINI的switch轉發路徑是在硬件里面的,所以LAN轉發的路徑對CPU幾乎沒有占用。
?
測試結果: 94.7Mbps
?
?
可以看到CPU占用幾乎沒有。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
? | Mem:?20860K?used,?105092K?free,?560K?shrd,?2060K?buff,?7016K?cached? CPU:???0%?usr???3%?sys???0%?nic??94%?idle???0%?io???0%?irq???1%?sirq? Load?average:?0.10?0.08?0.05?1/45?1536? ??PID??PPID?USER?????STAT???VSZ?%VSZ?%CPU?COMMAND? 1164?????1?dnsmasq??S?????1044???1%???3%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq? 1530??1235?root?????R?????1180???1%???1%?top?-d?1? 1234??1147?root?????S?????1124???1%???1%?/usr/sbin/dropbear?-F?-P?/var/run/dro? 908?????1?root?????S?????1628???1%???0%?/sbin/netifd? 973?????1?root?????S?????1540???1%???0%?/usr/sbin/uhttpd?-f?-h?/www?-r?OpenWr? 1?????0?root?????S?????1536???1%???0%?/sbin/procd? 872?????1?root?????S?????1440???1%???0%?/sbin/rpcd? 931?????1?root?????S?????1280???1%???0%?/usr/sbin/odhcpd? 1235??1234?root?????S?????1180???1%???0%?-ash? 410?????1?root?????S?????1176???1%???0%?/sbin/ubusd? 863?????1?root?????S?????1176???1%???0%?/sbin/logd?-S?16? 1089???908?root?????S?????1176???1%???0%?udhcpc?-p?/var/run/udhcpc-eth0.2.pid? 1022?????1?root?????S?????1176???1%???0%?/usr/sbin/ntpd?-n?-S?/usr/sbin/ntpd-h? 1147?????1?root?????S?????1056???1%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro? 1091???908?root?????S??????916???1%???0%?odhcp6c?-s?/lib/netifd/dhcpv6.script? 411?????1?root?????S??????892???1%???0%?/sbin/askfirst?/usr/libexec/login.sh? 118?????2?root?????SW???????0???0%???0%?[kworker/0:1]? 175?????2?root?????SW???????0???0%???0%?[spi0]? 3?????2?root?????SW???????0???0%???0%?[ksoftirqd/0]? ^C??6?????2?root?????SW???????0???0%???0%?[kworker/u2:0]? |
?
?
1.2.2??? NAT測試
?
小米使用的硬件平臺是MediaTek MT7620A ver:2 eco:6 ,帶有NAT硬件加速,簡稱HNAT。
?
Openwrt不支持硬件NAT,測試結果如下:
Result= 94.7Mbps
?
在這個測試中,幾乎占用了所有的CPU。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
? | Mem:?23308K?used,?102644K?free,?560K?shrd,?2060K?buff,?7024K?cached CPU:???1%?usr??14%?sys???0%?nic???0%?idle???0%?io???0%?irq??83%?sirq Load?average:?0.29?0.16?0.08?2/47?1669 ??PID??PPID?USER?????STAT???VSZ?%VSZ?%CPU?COMMAND 1089???908?root?????R?????1176???1%??92%?udhcpc?-p?/var/run/udhcpc-eth0.2.pid 3?????2?root?????RW???????0???0%???3%?[ksoftirqd/0] 1164?????1?dnsmasq??S?????1044???1%???2%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq 1669??1659?root?????R?????1180???1%???1%?top 1658??1147?root?????S?????1124???1%???1%?/usr/sbin/dropbear?-F?-P?/var/run/dro 118?????2?root?????SW???????0???0%???1%?[kworker/0:1] 908?????1?root?????S?????1628???1%???0%?/sbin/netifd 6?????2?root?????SW???????0???0%???0%?[kworker/u2:0] 973?????1?root?????S?????1540???1%???0%?/usr/sbin/uhttpd?-f?-h?/www?-r?OpenWr 1?????0?root?????S?????1536???1%???0%?/sbin/procd 872?????1?root?????S?????1440???1%???0%?/sbin/rpcd 931?????1?root?????S?????1280???1%???0%?/usr/sbin/odhcpd 1235??1234?root?????S?????1180???1%???0%?-ash 1659??1658?root?????S?????1180???1%???0%?-ash 410?????1?root?????S?????1176???1%???0%?/sbin/ubusd 863?????1?root?????S?????1176???1%???0%?/sbin/logd?-S?16 1022?????1?root?????S?????1176???1%???0%?/usr/sbin/ntpd?-n?-S?/usr/sbin/ntpd-h 1234??1147?root?????S?????1124???1%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro 1147?????1?root?????S?????1056???1%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro ^C091???908?root?????S??????916???1%???0%?odhcp6c?-s?/lib/netifd/dhcpv6.script |
?
?
?
使用PandoraBox的固件可以挽救這一局面。它集成了私有的HNAT代碼。
1 |
? | PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r1024-20150608.bin |
?
若要打開這個功能,需要在網頁中設置,相關的腳本在/etc/init.d/下面,他會加載HNAT的驅動。
測試的結果是94.7Mbps
?
可以看到幾乎沒有CPU的占用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
? | Mem:?48232K?used,?78160K?free,?0K?shrd,?0K?buff,?2146650668K?cached CPU:???0%?usr???0%?sys???0%?nic??98%?idle???0%?io???0%?irq???0%?sirq Load?average:?0.00?0.09?0.12?1/42?2685 ??PID??PPID?USER?????STAT???VSZ?%VSZ?%CPU?COMMAND 2685??2625?root?????R?????1376???1%???1%?top?-d?1 2124?????1?root?????S?????2576???2%???0%?/usr/sbin/nmbd?-D 2117?????1?root?????S?????2496???2%???0%?/usr/sbin/smbd?-D 2399?????1?nobody???S?????1936???2%???0%?/usr/sbin/dnsmasq?-C?/var/etc/dnsmasq 1784?????1?root?????S?????1548???1%???0%?/usr/sbin/uhttpd?-f?-h?/www?-r?Pandor 1650?????1?root?????S?????1472???1%???0%?/sbin/netifd 1?????0?root?????S?????1404???1%???0%?/sbin/procd 1769?????1?root?????S?????1376???1%???0%?/usr/sbin/telnetd?-F?-l?/bin/login.sh 2625??1769?root?????S?????1376???1%???0%?-ash 2354?????1?root?????S?????1376???1%???0%?/usr/sbin/crond?-f?-c?/etc/crontabs?- 1722?????1?root?????S?????1372???1%???0%?/usr/sbin/ntpd?-n?-l?-p?0.pool.ntp.or 1851??1650?root?????S?????1372???1%???0%?udhcpc?-p?/var/run/udhcpc-eth0.2.pid 1685?????1?root?????S?????1160???1%???0%?/usr/sbin/odhcpd 2157?????1?root?????S?????1148???1%???0%?/usr/sbin/dropbear?-F?-P?/var/run/dro 1614?????1?root?????S?????1040???1%???0%?/sbin/logd?-S?16 1801?????1?root?????S??????984???1%???0%?/usr/sbin/vsftpd 480?????1?root?????S??????884???1%???0%?/sbin/ubusd 1864??1650?root?????S??????828???1%???0%?odhcp6c?-s?/lib/netifd/dhcpv6.script 558?????1?root?????S??????768???1%???0%?/sbin/askfirst?/bin/login ^C559?????1?root?????S??????768???1%???0%?/sbin/askfirst?/bin/login |
?
1.3????? 總結
?
1. 對于Switch和NAT功能,硬件可以實現offload功能,減輕CPU的負擔
2. 對于滿速的Throughput測試,CPU基本可以滿足需求,但是會吃光CPU的資源。
3. 加入大量的打印會影響性能,如果將打印輸出到串口會讓性能降到幾乎為0
?
?
l? 打印和速率的關系(打印影響性能)
?
?
l? 硬件Switch和軟件網橋比較
可以看出來,硬件Switch的優勢明顯。
?
?
l? 硬件NAT和軟件NAT比較
可以看出來,實現硬件NAT會降低很多系統的負擔。但是硬件NAT不夠靈活,沒有集成一些軟件可以添加的高級功能。
?
?
?
?
?
?
?
?
?
?
?
?
?
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/tanhangbo/p/6080973.html
總結
以上是生活随笔為你收集整理的SwitchNAT 测试的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。