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