3,142 瀏覽數

smartbits – Performance 網卡效能測試

前面試過幾種封包的測試,我們還可以透過 smartbits 測試出較精準網卡速度,所需要的 Server 必須要有兩個網路埠. smartbits 所需的網路埠也一樣是兩個而實際的接圖如下:

performance11
在開始前你必須先知道大概 smartbits 的 SmartWindow,transmit SetupSmartCounters 的使用方式.設定大概需要以列幾步驟:

  • Linux – IP Forwarding
  • Smartbits – Streams Setup(Transmit Setup) – SmartMetric Mode
  • Smartbits – Layer3 Send ARP Requests
  • Smartbits – Group Start

performance13

  • IP Forwarding

    這兩個網路埠必須同屬一台 Server 上,為了讓這兩個埠相通,在 Linux 下必須開啟 IP Forwarding 的功能.要讓 IP Forwarding 生效最快的方式就是直接更改 /proc/sys/net/ipv4/ip_forward 的值,但這方式在下次開機後會失效.

    [root@benjr ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
    

    還是要更改設定檔,這樣下次開機一樣有效,並使用指令 sysctl -p 讓他立即生效.

    [root@benjr ~]# vi /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    [root@benjr ~]# sysctl –p
    

    這一次的效能測試主要是透過 TCP/IP Layer 3 的方式去測試,所以需要將剛剛那兩個埠設定固定 IP 並將他們啟動.

    [root@benjr ~]# ifconfig eth0 192.1.1.1
    [root@benjr ~]# ifconfig eth1 192.2.1.1
    
  • Streams Setup(Transmit Setup) – SmartMetric Mode

    回到我們的 Smartbits 的 SmartWindow 這邊的設定會以 SmartMetric Mode 為主.如果前面將預設改為 Traditional Mode,透過修改 SmartMetrics Ethernet Cards 值可以回到 SmartMetric Mode 從 Options / Preferences / General / SmartMetrics Ethernet Cards 來修改, 預設是有勾選 Default to SmartMetrics mode for all SmartMetrics capable-modules.(也就是 SmartMetric Mode).

    或是在埠按 SmartMetric Mode 再去設定 Transmit Setup.. 一樣可以設定.

    預設的值大多都不需要改變.

    • Interframe Gap (IFG)這邊指的是封包可傳送的最小間隔時間,速度會因為網卡的速度而不同,通常速度越快的網卡可間隔時間越小,如 10M: 9.6 微秒. 100M: 0.96 微秒. 1G: 0.096 微秒. 微秒( us : 0.000001  10的負6次方)
    • Mode傳輸封包模式有 Continuous(不間斷的傳輸封包) , Single(傳送指定個數封包) ,multiburst(在指定時間內傳輸指定個數封包) , cont multiburst ,echo
    • Stream Header Length64-byte 適用於 IPV4 而 128Byte 適用於 IPV6
    • Background傳送的封包內容值,可以透過 Background 來選擇 A 或者是 B

    performance22
    在 smartWindow 中選擇要傳送的埠上按右鍵設定 Transmit Setup .因為是 SmartMetric Mode 這邊要新增傳送封包格式時只要選擇 “Add". 其中最主要的設定是 Frame Length 訊框長度.我把他設定為最長的訊框格式 1514 nytes (標準訊框最大可以為 1518 bytes – 4bytes,FCS:frame check sequence)

    performance12
    在 PC / Server 環境下當 Frame Length 過小容易造成 Buffer 一下就滿了,進而造成封包的遺失這樣在效能表現上反而無法達到最大值.所以在設定 Frame Length 使用了最大值.在 Frame 的定義如下,訊框大小除了資料 46bytes ~ 1500bytes 加上其他 header 就是 64 bytes ~ 1518bytes .

    frame

    新增好一個封包這邊我們就開始指定兩端的 IP(以 TCP/IP Layer 3 為測試方式).以前面的範例為設定值,另外一個埠也是以相同的方式做設定.

    • Network Source :192.1.1.100
    • Network Destination :192.2.1.100
    • Gateway :192.1.1.1
    • Mode :Continuous

    最主要是測試效能所以建議使用 Continuous 方便我們看出效能的極限制.

  • Layer3 Send ARP Requests

    在一開始兩邊的埠都不認識對方所以必須先發出一個 ARP 找出相對應的網路埠.你可以在 Transmit Setup 看出封包內容在傳送出 Layer3 Send ARP Requests 後有明顯的不同. 原本是 FF FF FF FF FF FF 的廣播封包現在變成 unicast 的封包.

    performance15
    這邊是在 Options / Preferences / User Preferences / General 預設 ARP/Neighbor Discovery 功能 Apply Resolved Destination MAC address to all TX streams. 是開啟的,所以 smartbits 在認識對方的網路埠之後就會採用 unicast 的封包來傳送.

    performance16

  • Group Start

    要測試的兩個網路埠都設定好 Network Source / Network Destination / Gateway .在測試中傳輸和接受是雙向同時進行的, 也因此我們不能像之前的測試直接在 SmartWindow 按 “Burst" 必須按左上方的 Group / Start 讓兩個網路埠的傳輸能同時進行.

    經過一段時間後可以透過 SmartCount 看到剛剛測試的結果.不過我們要怎們算出最大效能呢!!

    performance14
    然這邊看到 Tx / Rx Bytes 是 123MBytes 以幾乎是 984Mbits(1Gbits) 的速度,但是這裡不建議看 Tx / Rx Bytes 他會受到 Frame Length 大小而影響到結果,建議看 Tx / Rx Frames 的數值會比較準,不過 Tx / Rx Frames 需要手動算出:

    Preamble –> 8 bytes * 8 = 64 bits

    Frame length –> 1518 bytes (minimum) * 8 = 12144 bits

    Inter-frame gap –> 12 bytes (minimum) * 8 = 96 bits

    運算公式如下:

    Maximum Frame Rate = MAC Transmit Bit Rate (Connection Speed) / (Preamble + Frame Length + Inter-frame Gap)

    = 1,000,000,000 / (64 + 12144 + 96)

    = 1,000,000,000 / 12304

    = 81,274 frame per second (fps) 和 SmartCounter 看到的81,274 一致,的確效能已經達到最大值了.

3 個網友的想法 “smartbits – Performance 網卡效能測試

  1. 自動參照通知: smartbits – switch 測試 | Benjr.tw

  2. 自動參照通知: smartbits – Frame lost | Benjr.tw

  3. 自動參照通知: SPIRENT – smartbits | Benjr.tw

發表迴響