多核服務(wù)器吞吐性能提升大測試
多核服務(wù)器吞吐性能提升是非常重要的,因為服務(wù)器不同于臺式機和工作站,它與外界打交道的通道就是網(wǎng)絡(luò),無論處理器進(jìn)行了哪些復(fù)雜的計算,其結(jié)果都要通過網(wǎng)卡返回給請求對象。從某種意義上講,網(wǎng)卡就是服務(wù)器對外聯(lián)絡(luò)和通信的"咽喉"組件,它在某種程度上決定了服務(wù)器的整體性能。我們進(jìn)行的多核服務(wù)器吞吐性能提升測試,就是圍繞網(wǎng)卡的吞吐能力進(jìn)行的。
其實很多用戶對于多核服務(wù)器吞吐性能提升都有疑問-服務(wù)器的網(wǎng)卡真的那么重要么?我的筆記本電腦也配置千兆網(wǎng)卡啦!沒錯,目前主流服務(wù)器所配置的都是千兆以太網(wǎng)卡,從指標(biāo)來看,這兩種網(wǎng)卡在性能上沒有什么區(qū)別,但是面對大數(shù)據(jù)流的時候,你就會發(fā)現(xiàn)服務(wù)器的網(wǎng)卡功力之深厚,遠(yuǎn)非桌面級網(wǎng)卡所能比擬的。
計算機世界實驗室的多核服務(wù)器吞吐性能提升測試腳本中有兩類應(yīng)用與服務(wù)器網(wǎng)卡的性能直接相關(guān),一類是靜態(tài)Web頁面,另一類是基于ASP的Web應(yīng)用。這兩類應(yīng)用都有同一個特點,即單位時間內(nèi)并發(fā)請求高,而通過專用測試設(shè)備可直接向服務(wù)器發(fā)出海量數(shù)據(jù)包,服務(wù)器吞吐能力的高低即刻就能呈現(xiàn)出來。
在常規(guī)的Windows Server 2008系統(tǒng)的測試中,我們發(fā)現(xiàn)在默認(rèn)設(shè)置下,即便是表現(xiàn)最好的至強5500服務(wù)器平臺,靜態(tài)響應(yīng)指標(biāo)都很難超越28000TPS,而此時處理器性能還遠(yuǎn)未發(fā)揮出來。表面上服務(wù)器的吞吐性能似乎是被VCPU限制了,其實瓶頸在于網(wǎng)卡,因為網(wǎng)卡在默認(rèn)狀態(tài)下只能和一個VCPU打交道,而服務(wù)器網(wǎng)卡顯然不應(yīng)該只有這點實力。
從各家服務(wù)器網(wǎng)卡芯片的資料和驅(qū)動中,我們發(fā)現(xiàn),在新一代服務(wù)器網(wǎng)卡配置中,都提供了TOE(TCP Offload Engine)功能。此功能可以將網(wǎng)絡(luò)層面的一部分工作移至硬件完成,以節(jié)約CPU的資源,在高級選項中可以設(shè)置是否對Rx/Tx有效。在開啟此選項后,可以明顯看到VCPU資源得到了相當(dāng)程度的釋放,整機訪問性能也上升到了41000TPS,即使面對這樣強的數(shù)據(jù)流,至強5500平臺整體CPU占有率依然未超過70%,而且表現(xiàn)還相當(dāng)平穩(wěn)。如此成績令我們興奮之余,也讓我們意識到,處理器還有余力,看來網(wǎng)卡端還有潛力可挖。
沒錯,下面就開始介紹本次測試的重點-RSS(Receive-Side Scaling),擁有RSS功能的網(wǎng)卡不少,但是能在RSS基礎(chǔ)上提供隊列支持的就太少了,我們最終在英特爾i82576網(wǎng)卡上看到了最多支持8條隊列的特性,而它同時支持1/2/4/8條隊列的功能也讓我們更深入地了解了不同隊列數(shù)量對于新一代多核服務(wù)器吞吐性能的意義。
RSS隊列的精華功能是將網(wǎng)卡的數(shù)據(jù)分流到運行在不同VCPU的并行協(xié)議棧上,因此在實際測試中,我們發(fā)現(xiàn),在設(shè)置兩條隊列時,服務(wù)器的性能就獲得了極大的提升,53000TPS的性能遠(yuǎn)遠(yuǎn)超出了最初的預(yù)想,而此時服務(wù)器整體CPU占有率也超過了90%。而隨著4條隊列的引入,即便是雙路至強 5500平臺的16顆VCPU,也都能調(diào)動起95%以上的計算能力,而此時性能幾乎達(dá)到峰值-57600TPS,再引入8條隊列,也基本如此了。因此我們初步判斷,要提升服務(wù)器的Web接入、數(shù)據(jù)庫訪問、網(wǎng)絡(luò)游戲前端等強調(diào)TPS指標(biāo)的應(yīng)用模型時,RSS隊列是一個必須要關(guān)注的設(shè)置點。它配合TOE,可以充分發(fā)揮多核時代服務(wù)器的吞吐性能。
【編輯推薦】















 
 
 

 
 
 
 