伺服器不同於台式電腦和工作站,它與外界打交道的通道就是網路,無論處理器進行了哪些複雜的計算,其結果都要通過網絡卡返回給請求物件。從某種意義上講,網絡卡就是伺服器對外聯絡和通訊的「咽喉」元件,它在某種程度上決定了伺服器的整體效能。我們進行的伺服器tps效能測試,就是圍繞網絡卡的吞吐能力進行的。
其實很多使用者都有疑問—伺服器的網絡卡真的那麼重要麼?我的膝上型電腦也配置千兆網絡卡啦!沒錯,目前主流伺服器所配置的都是千兆乙太網卡,從指標來看,這兩種網絡卡在效能上沒有什麼區別,但是面對大資料流的時候,你就會發現伺服器的網絡卡功力之深厚,遠非桌面級網絡卡所能比擬的。
計算機世界實驗室的伺服器測試指令碼中有兩類應用與伺服器網絡卡的效能直接相關,一類是靜態web頁面,另一類是基於asp的web應用。這兩類應用都有同乙個特點,即單位時間內併發請求高,而通過專用測試裝置可直接向伺服器發出海量資料報,伺服器吞吐能力的高低即刻就能呈現出來。
在常規的windows server 2008系統的測試中,我們發現在預設設定下,即便是表現最好的至強5500伺服器平台,靜態響應指標都很難超越28000tps,而此時處理器效能還遠未發揮出來。表面上伺服器的吞吐效能似乎是被vcpu限制了,其實瓶頸在於網絡卡,因為網絡卡在預設狀態下只能和乙個vcpu打交道,而伺服器網絡卡顯然不應該只有這點實力。
從各家伺服器網絡卡晶元的資料和驅動中,我們發現,在新一代伺服器網絡卡配置中,都提供了toe(tcp offload engine)功能。此功能可以將網路層面的一部分工作移至硬體完成,以節約cpu的資源,在高階選項中可以設定是否對rx/tx有效。在開啟此選項後,可以明顯看到vcpu資源得到了相當程度的釋放,整機訪問效能也上公升到了41000tps,即使面對這樣強的資料流,至強5500平台整體cpu占有率依然未超過70%,而且表現還相當平穩。如此成績令我們興奮之餘,也讓我們意識到,處理器還有餘力,看來網絡卡端還有潛力可挖。
沒錯,下面就開始介紹本次測試的重點—rss(receive-side scaling),擁有rss功能的網絡卡不少,但是能在rss基礎上提供佇列支援的就太少了,我們最終在英特爾i82576網絡卡上看到了最多支援8條佇列的特性,而它同時支援1/2/4/8條佇列的功能也讓我們更深入地了解了不同佇列數量對於新一代多核伺服器吞吐效能的意義。
rss佇列的精華功能是將網絡卡的資料分流到執行在不同vcpu的並行協議棧上,因此在實際測試中,我們發現,在設定兩條佇列時,伺服器的效能就獲得了極大的提公升,53000tps的效能遠遠超出了最初的預想,而此時伺服器整體cpu占有率也超過了90%。而隨著4條佇列的引入,即便是雙路至強5500平台的16顆vcpu,也都能調動起95%以上的計算能力,而此時效能幾乎達到峰值—57600tps,再引入8條佇列,也基本如此了。因此我們初步判斷,要提公升伺服器的web接入、資料庫訪問、網路遊戲前端等強調tps指標的應用模型時,rss佇列是乙個必須要關注的設定點。它配合toe,可以充分發揮多核時代伺服器的吞吐效能。
從圖中可以看出,toe配合兩條佇列,就能讓至強5500伺服器的tps效能發揮得淋漓盡致。
提公升伺服器效能的建議
效能對於伺服器來說是至關重要的,畢竟每個活動都期望起請求能很快的得到響應.影響伺服器效能的首要因素就是系統的硬體資源.比如cpu的個數 速度 記憶體的大小等.不過由於硬體技術的飛速發展,現代伺服器都不缺反硬體資源,因此我們需要考慮的主要問題是如何從 軟環境 來提公升伺服器的效能.伺服器的 軟環境 一...
伺服器IO效能提公升方案
介質 hdd ssd 介面sata scsi controller,raid卡or南橋,是否有快取 檔案系統 xfs,或其他brtfs之類的 磁碟佇列演算法deadline cfq noop dm記憶體快取設定 raid形式 效能raid0 磁碟空間使用率 100 故成本最低。讀效能 n單塊磁碟的讀...
應用多核CPU推進伺服器虛擬化效能
本文摘自 url 虛擬化一直是整個業界非常關心的問題,自從幾年以前,虛擬化的概念被提出來,直到最近 一 二 年,虛擬化的概念和實施逐步清晰,硬體及軟體的虛擬化慢慢成熟之後,虛擬化著實讓很多使用者頗為有益,其集中化計算 動態分配資源 充分利用系統資源的優勢對提高企業it產品的利用率起到了積極的作用。現...