HPSN

HPSN,是High-Performance Scalable Networking的縮寫,中文是高性能可伸縮網路。

HPSN

HPSN:High-Performance Scalable Networking高性能可伸縮網路

相關知識

有許多資料討論了網路性能、最佳化和調優,涉及各種硬體、平台和作業系統以及各種工作負載。但是,高性能可伸縮伺服器(比如IBM®eServer™xSeries®x460和IBMSystemx™3950)的大量使用畢竟增加了網路和系統性能的複雜性。例如,對於可以通過添加完整的機架(或節點)來增加容量的可伸縮伺服器,提高跨多節點系統的網路可伸縮性對總體系統性能非常重要

系統配置

測試用系統(SUT)是一個4節點的IBMeServerxSeries460,運行SUSELinuxEnterpriseServer10forAMD64andEM64T(x86-64)。每個節點的配置如下:

系統:IBMeServerxSeries460

CPU:4個64位Intel®Xeon®處理器70403.0GHz

記憶體:32GB(4個記憶體卡上各有8個1GBDIMM)

乙太網適配器:Broadcom570410/100/1000dualEthernet/onsystemboard/64-bit266MHzPCI-X2.0

網路驅動程式:tg3c3.49

網路類型:千兆乙太網

執行緒化:超執行緒技術

所有測試場景都使用IBMSystemp5™550系統,每個系統有兩個IntelDual-Port乙太網適配器,運行RedHatEnterpriseLinux4Update4。4節點的綁定(bond)測試還包含一個2節點的IBMeServerxSeries460,運行SUSELinuxEnterpriseServer10forAMD64andEM64T(x86-64)。SUT和驅動程式通過一個CiscoCatalyst3750G-24TS交換機網路。

測試方法

由於多種原因,我選用netperf基準(具體地說,是單向流測試TCP_STREAM)測試可伸縮性演示工作負載,原因包括它的簡單性可度量性、在Linux上的穩定性、廣泛的套用以及能夠精確地度量批量數據傳輸性能。它是一個基本的客戶機-伺服器模型基準,包含兩個對應的執行檔netperf和netserver。

簡單的TCP_STREAM測試從netperf系統到netserver系統的數據傳輸時間,以此度量一個系統傳送數據和另一個系統接收數據的速度。在執行時,netperf建立一個到遠程系統的控制連線(通過TCP)。這個連線用來在系統之間傳遞配置信息和結果。使用另一個連線執行度量,在此期間保留控制會話但是沒有通信流(除非某些TCP選項需要通信)。

在這裡描述的所有測試中,當IBMeServerxSeries460執行網路傳送(netperf)、網路接收(netserver)或同時執行這兩種操作(雙向)時,都度量網路吞吐量和CPU利用率。在客戶機傳送端記錄客戶機和伺服器之間的吞吐量,並由netperf基準報告記錄的數據。

每個環境的完整測試對於從64位元組到256KB的15種訊息大小分別執行3分鐘的流測試。這個範圍包含1460和1480位元組的訊息大小,所以在Linux將訊息分割為小數據包傳送到網路之後,總的數據包大小接近默認的最大傳輸單位(MTU)1500。在SUT上度量CPU利用率並由sysstat包中的sar實用程式報告,這一信息表示為netperf測試期間的系統平均值。所有CPU和中斷信息也來自sar數據。

在可伸縮性演示中,修改了配置和參數來影響行為。以各種組合啟用和禁用它們將導致不同的結果。通過設定SMPIRQ親合位掩碼/proc/irq/nnn/smp_affinity,可以指定允許哪些CPU處理特定的中斷。Linux在初始化期間將它們設定為默認值。可以啟動守護進程irqbalance,在處理器之間動態地分發硬體中斷。如果啟用這個守護進程,它會反覆修改smp_affinity位掩碼來執行分發。可以使用numactl程式將特定的進程綁定到特定節點上的CPU和/或記憶體。Linux網路綁定提供多種將多個網路接口合併為一個邏輯接口的方法,對於多節點伺服器,這是一個有吸引力的網路管理特性

性能和可伸縮性結果

我們來看看以下配置的結果:

開箱即用:不修改軟體配置

開箱即用加上numactl:與前一個配置相同,但是使用numactl將SUT上的netperf和/或netserver應用程式綁定到適當節點上的CPU和記憶體

乙太網SMPIRQ親合:與第一個配置相同,但是將每個乙太網適配器的中斷處理綁定到適配器所在的節點上的一個CPU(不使用irqbalance)

乙太網SMPIRQ親合加上numactl:這個測試環境組合了第二個和第三個配置

乙太網綁定:讓一個大型多節點系統中的一些或所有乙太網適配器共用一個IP位址

開箱即用配置

開箱即用測試在不修改軟體配置的情況下運行。在這個環境中,在Linux初始化期間默認啟動irqbalance守護進程。不修改SMPIRQ親合,也不使用numactl和綁定

第一個netserver可伸縮性測試在SUT的第一個節點的兩個系統板載乙太網適配器上各使用一個netserver實例。每個netserver實例監聽一個專用連線埠和IP位址;每個乙太網適配器的IP位址屬於單獨的子網以確保專用的通信流。遠程驅動程式運行對應的netperf實例,從而按照遠程netperf實例到SUTnetserver實例的一對一映射提供流通信。完整測試使用15種不同的訊息大小,對於每種訊息大小執行3分鐘的測試,並度量網路流吞吐量和系統CPU利用率。

第二個netserver可伸縮性測試使用前2個節點上的所有4個系統板載乙太網適配器,第三個測試使用所有4個節點上的所有8個系統板載乙太網適配器。對於每個測試,相應地增加SUTnetserver實例和遠程netperf實例的數量。

相關搜尋

熱門詞條

聯絡我們