服務(wù)器和我們常見(jiàn)的PC一樣,都是由CPU、主板、內(nèi)存、硬盤、網(wǎng)卡等配件組成的。在習(xí)慣上,都對(duì)CPU、主板、內(nèi)存、硬盤等部件比較在意,對(duì)網(wǎng)卡就不太重視了。網(wǎng)卡擔(dān)任整個(gè)機(jī)器的數(shù)據(jù)傳輸任務(wù),它的穩(wěn)定性和耐久性關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和耐久性,所以網(wǎng)卡這一部分,實(shí)在不可等閑視之。
PC和服務(wù)器上都有網(wǎng)卡,那么什么是服務(wù)器網(wǎng)卡?服務(wù)器網(wǎng)卡又有什么特殊地方?跟普通PC網(wǎng)卡有什么區(qū)別呢?在討論這個(gè)問(wèn)題之前,我們分別來(lái)看看PC和服務(wù)器上網(wǎng)卡的作用。
PC網(wǎng)卡的作用其實(shí)大家都比較清楚了。上網(wǎng)、或者局域網(wǎng)之間傳輸一些數(shù)據(jù),PC主要是根據(jù)本機(jī)鍵盤、鼠標(biāo)等設(shè)備輸入的指令,然后再根據(jù)這些指令處理數(shù)據(jù)。對(duì)PC來(lái)講,網(wǎng)卡并非是關(guān)鍵配件,有了網(wǎng)卡,PC就能和其他設(shè)備方便的交換數(shù)據(jù),但是網(wǎng)卡并不是不可缺少的,沒(méi)有網(wǎng)卡,PC也能正常工作。
但服務(wù)器上,網(wǎng)卡卻是一個(gè)不折不扣關(guān)鍵部件。去過(guò)機(jī)房的朋友都知道,服務(wù)器在正常工作的時(shí)候,絕大部分僅接上兩根線纜而已。哪兩根線?一個(gè)是電源線,另外一個(gè)就是網(wǎng)線。顯示器、鍵盤、鼠標(biāo)這些在PC上必不可少的部件,在服務(wù)器上面卻是屬于閑置配件,或者叫做備件,只有在安裝系統(tǒng)、大的系統(tǒng)調(diào)試的時(shí)候才用得上。平時(shí)服務(wù)器在工作的時(shí)候,服務(wù)器上的控制和調(diào)配,都是通過(guò)網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程控制來(lái)完成的。而服務(wù)器工作任務(wù),就是接受網(wǎng)絡(luò)上傳來(lái)的指令,然后根據(jù)指令作出相應(yīng)的查詢、運(yùn)算、分析,然后將結(jié)果通過(guò)網(wǎng)絡(luò)回傳給指定的客戶端。從這里,大家就能看出網(wǎng)卡對(duì)服務(wù)器的重要性了吧?可以說(shuō),沒(méi)有網(wǎng)卡的機(jī)器,不能叫做服務(wù)器。
既然服務(wù)器的網(wǎng)卡的作用如此重要,那么,服務(wù)器的網(wǎng)卡又跟普通PC網(wǎng)卡有什么不同呢?當(dāng)然,誰(shuí)都知道,從表面上看,他們價(jià)格是相差很遠(yuǎn)的。一塊獨(dú)立PC網(wǎng)卡,花個(gè)25元、30元,隨便就能買到1個(gè)100M的網(wǎng)卡了,1000M網(wǎng)卡也不貴,200多塊錢也多的是。但是服務(wù)器獨(dú)立網(wǎng)卡價(jià)格就貴多了,常見(jiàn)的服務(wù)器網(wǎng)卡芯片廠商,有Intel、3COM、Marvell、Broadcom等,這些牌子的網(wǎng)卡,幾百元的網(wǎng)卡只能算是入門級(jí)的,幾千元的網(wǎng)卡也很常見(jiàn)。一些網(wǎng)卡大廠,例如Intel,他的網(wǎng)卡有桌面版和服務(wù)器版,而Intel對(duì)各個(gè)型號(hào)網(wǎng)卡屬于哪個(gè)應(yīng)用,都有明確的標(biāo)注。
服務(wù)器的網(wǎng)卡貴這么多,根本就在于性能的不同。衡量網(wǎng)卡性能的指標(biāo),主要有以下三個(gè):
1、傳輸速度;
2、CPU占用率;
3、穩(wěn)定性和安全性。
下面我們從這三個(gè)方面,一一解析服務(wù)器網(wǎng)卡和PC網(wǎng)卡異同點(diǎn)。
1、傳輸速度;
我們區(qū)分網(wǎng)卡的等級(jí),最常見(jiàn)、最直觀的就是網(wǎng)卡的速率,我們說(shuō)100M網(wǎng)卡、1000M網(wǎng)卡,指的就是網(wǎng)卡的傳輸速率。數(shù)字是最直觀的,但是,有時(shí)候數(shù)字又是最容易迷惑人的。比如同樣是1000M網(wǎng)卡,我們看到服務(wù)器上的網(wǎng)卡多數(shù)都是PCI-X或者PCI-E接口。而PC的網(wǎng)卡,則一律都是PCI接口的。PCI總線的帶寬,只有133M/S,而1000M網(wǎng)卡的峰值數(shù)據(jù)帶寬,是125M/S,按照全雙工計(jì)算的話,則是250M/S,也就是說(shuō),PCI的帶寬,根本不能滿足千兆網(wǎng)卡的需要,而且我們要注意到,在整個(gè)系統(tǒng)里面,PCI帶寬是共享的,就是說(shuō),硬盤、光驅(qū)、聲卡、USB口等設(shè)備,都要跟網(wǎng)卡搶這可憐的133M/S帶寬,所以,在PC上的所謂的千兆網(wǎng)卡,是不可能實(shí)現(xiàn)真正的千兆的速率的。PCI-X16總線的帶寬,則高達(dá)7629M/S,是普通PCI總線的60多倍,對(duì)付千兆網(wǎng)卡的250M/S傳輸綽綽有余,就算是兩個(gè)甚至更多千兆網(wǎng)卡,也可輕松應(yīng)對(duì)?!?/p>
如果把整個(gè)系統(tǒng)當(dāng)作個(gè)一城市的話,那網(wǎng)卡就是港口,而主板上的總線,則是港口配套的道路。PC上的千兆網(wǎng)卡,就好像一個(gè)道路很小的大港口,雖然港口的入口很大,但是配套的道路卻很小,進(jìn)來(lái)的貨物,根本不能及時(shí)的運(yùn)走。所以,PC上的千兆網(wǎng)卡,多數(shù)情況下只是一個(gè)美麗的幌子,根本達(dá)不到真正的千兆網(wǎng)卡的速度。而服務(wù)器的網(wǎng)卡,則從入口到出口,都具備巨大的帶寬,所以能達(dá)到真正的千兆速度。
服務(wù)器的網(wǎng)卡負(fù)擔(dān)著所有來(lái)往數(shù)據(jù)的進(jìn)出,有些應(yīng)用的數(shù)據(jù)流量非常的大,甚至單個(gè)千兆網(wǎng)卡都不能滿足。象網(wǎng)吧、賓館、卡拉OK廳里的電影點(diǎn)播、大型企業(yè)里的文件共享,就是這種應(yīng)用的典型例子。為了解決這個(gè)問(wèn)題,網(wǎng)卡廠商也給出了解決方法,網(wǎng)卡綁定,負(fù)載均衡,這些就是網(wǎng)卡廠商提出的比較實(shí)用、經(jīng)濟(jì)的解決辦法。
網(wǎng)卡綁定,負(fù)載均衡這些名詞聽(tīng)起來(lái)比較高深,但道理其實(shí)很簡(jiǎn)單,就是多個(gè)網(wǎng)卡使用同一個(gè)IP,協(xié)同工作,多個(gè)網(wǎng)卡象一個(gè)網(wǎng)卡那樣使用,以達(dá)到更高的傳輸速度。服務(wù)器網(wǎng)卡都支持這類功能,以intel網(wǎng)卡為例,可以支持8個(gè)網(wǎng)卡同時(shí)綁定,實(shí)現(xiàn)8千兆的最高帶寬。
2、CPU占用率;
CPU占用率是測(cè)評(píng)里面經(jīng)常出現(xiàn)的一個(gè)指標(biāo),但是很多人對(duì)這個(gè)指標(biāo)并沒(méi)有引起太大的重視。實(shí)際上,CPU占用率也經(jīng)常和另外一個(gè)參數(shù)聯(lián)系起來(lái),這個(gè)參數(shù)就是“并發(fā)數(shù)”。并發(fā)數(shù)這個(gè)概念,大家都比較好理解,指的是在單位時(shí)間內(nèi)(一般是1秒),向系統(tǒng)發(fā)出的請(qǐng)求數(shù)量。但是PC對(duì)這個(gè)參數(shù)是沒(méi)有什么要求的,這也是理所當(dāng)然的。PC使用里,根本沒(méi)有多大機(jī)會(huì)有很高的并發(fā)數(shù)。而服務(wù)器則就大不相同了,一臺(tái)服務(wù)器,接受的客戶端從幾個(gè)到幾千、幾萬(wàn)都有,比如一個(gè)網(wǎng)站,訪問(wèn)者的每次點(diǎn)擊,都是一個(gè)請(qǐng)求,而服務(wù)器可能要同時(shí)應(yīng)對(duì)數(shù)百甚至上千上萬(wàn)個(gè)這樣的請(qǐng)求,如果服務(wù)器,或者說(shuō)服務(wù)器網(wǎng)卡不能及時(shí)的處理這些請(qǐng)求的話,這個(gè)服務(wù)器就癱瘓掉了。什么叫黑客攻擊?調(diào)用大量的客戶端,給某個(gè)服務(wù)器發(fā)送大量的無(wú)用請(qǐng)求,就是最簡(jiǎn)單、最直接的,也是最有效的攻擊方法。并發(fā)數(shù)越高,消耗的CPU資源就越多,CPU占用率就越高了。
因?yàn)榉?wù)器要求的并發(fā)數(shù)遠(yuǎn)遠(yuǎn)大于PC的,所以專用服務(wù)器網(wǎng)卡芯片,都具有一定的處理能力,能對(duì)這些請(qǐng)求進(jìn)行初步的處理,所以可以大大減輕CPU的負(fù)擔(dān)??吹竭@里,有的朋友就會(huì)問(wèn)笨人了,服務(wù)器不是有多個(gè)CPU嗎?現(xiàn)在還流行什么雙核、四核CPU,一個(gè)服務(wù)器上有N個(gè)CPU計(jì)算核心,還怕網(wǎng)卡占用了這么一點(diǎn)CPU性能嗎?假設(shè)我用了很強(qiáng)的CPU,那是不是就沒(méi)必要用服務(wù)器的專用網(wǎng)卡了?
首先我們要知道一個(gè)數(shù)據(jù)要從網(wǎng)卡去到CPU,要經(jīng)過(guò)哪些路線:網(wǎng)卡=》南橋芯片=》北橋芯片=》內(nèi)存=》CPU(如果是服務(wù)器的話,則是網(wǎng)卡CPU=》PCI-X橋接芯片=》北橋芯片=》內(nèi)存=》CPU),CPU處理完了,同樣要從相反的路線返回網(wǎng)卡那里,CPU處理這個(gè)數(shù)據(jù),可能僅僅花了1個(gè)時(shí)鐘周期的時(shí)間,但是這個(gè)數(shù)據(jù)的傳輸時(shí)間,卻花了十幾個(gè)甚至幾十個(gè)時(shí)鐘周期,CPU在處理這個(gè)數(shù)據(jù)之前,要花大量的時(shí)間來(lái)等待這個(gè)數(shù)據(jù)的傳輸,所以假設(shè)一個(gè)數(shù)據(jù),由網(wǎng)卡芯片來(lái)處理的話,就能比CPU來(lái)處理節(jié)省下這些傳輸?shù)臅r(shí)間。
如果用港口來(lái)做比喻網(wǎng)卡的話。那么,具有一定處理性能的服務(wù)器網(wǎng)卡,就象配備了港口職員的港口,對(duì)一些初級(jí)的處理要求,就像來(lái)往貨物的登記、運(yùn)輸秩序的安排、維護(hù)等等,這些基本的任務(wù),港口自身就能獨(dú)立完成了,所以就能做到高效、及時(shí)。而沒(méi)有處理能力的PC網(wǎng)卡,則象那些沒(méi)有專職職員的港口,所有的工作,都要交給市長(zhǎng)(CPU)來(lái)處理,市長(zhǎng)的工作能力,的確比普通職員強(qiáng)的多,但是市長(zhǎng)要處理港口的事情,就要打報(bào)告,從海關(guān),到局長(zhǎng),到市長(zhǎng)辦公室,一級(jí)一級(jí)的傳文件上去??赡芷胀殕T處理一項(xiàng)事情,平均用5分鐘,市長(zhǎng)能力強(qiáng),只需要1分鐘就完成了,但是文件傳送的時(shí)間,卻要好幾個(gè)小時(shí),所以算來(lái),普通職員處理事件的效率反而比市長(zhǎng)高十幾倍、幾十倍。
從上面的例子我們也可以看出來(lái),就算CPU的性能提升了,但是對(duì)整個(gè)流程來(lái)講,提升的程度也是不明顯的,因?yàn)榇蟛糠值臅r(shí)間,實(shí)際上都浪費(fèi)在數(shù)據(jù)的傳輸上了。服務(wù)器網(wǎng)卡芯片的處理性能,雖然遠(yuǎn)遠(yuǎn)比不上CPU,但是卻能夠確確實(shí)實(shí)的分擔(dān)CPU的負(fù)擔(dān)?! ?/p>
另外,值得注意的是,并發(fā)數(shù)跟流量并沒(méi)有直接關(guān)系??蛻舳私o服務(wù)器發(fā)送一個(gè)請(qǐng)求,可能只有幾十、幾百個(gè)字節(jié),幾千個(gè)這樣的請(qǐng)求同時(shí)并發(fā),總的數(shù)據(jù)流量也不過(guò)幾M而已,但是這幾千個(gè)并發(fā)請(qǐng)求對(duì)系統(tǒng)的壓力,絕對(duì)不是那些廉價(jià)的PC網(wǎng)卡所能承擔(dān)得起的。所以有的人,說(shuō)什么人家機(jī)房才分配給我這個(gè)服務(wù)器幾個(gè)M的帶寬,所以拿個(gè)10M、100M的便宜網(wǎng)卡,幾十塊錢那種的,拿來(lái)做服務(wù)器網(wǎng)卡用,認(rèn)為已經(jīng)綽綽有余了,還譏笑別人的服務(wù)器用了千兆網(wǎng)卡是浪費(fèi),其實(shí)這是一個(gè)“無(wú)知者無(wú)畏”的表現(xiàn),根本沒(méi)搞清楚網(wǎng)卡在服務(wù)器里面的作用和地位。
3、穩(wěn)定性和安全性。
服務(wù)器最重要的是什么?有很多人認(rèn)為是性能,但是實(shí)際上,服務(wù)器的穩(wěn)定性遠(yuǎn)比性能重要的多,為了保證服務(wù)器的穩(wěn)定性,所有的配件都必須具備同樣高的品質(zhì)才行。服務(wù)器網(wǎng)卡除了芯片性能夠好之外,用料充足和做工精良也是必須的。
網(wǎng)卡的穩(wěn)定性也體現(xiàn)在數(shù)據(jù)傳輸?shù)谋憩F(xiàn)上,服務(wù)器網(wǎng)卡的傳輸曲線都很平滑,升降波動(dòng)少。大家都知道,網(wǎng)絡(luò)傳輸是以數(shù)據(jù)包的形式發(fā)送的,網(wǎng)絡(luò)質(zhì)量不行,就容易發(fā)生丟包的現(xiàn)象。如果網(wǎng)卡性能不夠好,那么在網(wǎng)卡負(fù)載大的時(shí)候,丟包的概率就會(huì)上升,發(fā)生丟包后,數(shù)據(jù)就要重新傳輸,反過(guò)來(lái)又再次增加網(wǎng)卡的壓力。
在一些關(guān)鍵應(yīng)用上,服務(wù)器的意外停機(jī)會(huì)造成巨大的損失,在這種情況下,服務(wù)器的關(guān)鍵部件,例如硬盤、電源等,都會(huì)采用冗余方案,以求最大程度的保證服務(wù)器的正常運(yùn)行。服務(wù)器網(wǎng)卡作為關(guān)鍵部件之一,理所當(dāng)然也具有冗余方案。上面我們提到過(guò)的網(wǎng)卡綁定、負(fù)載均衡等技術(shù),同時(shí)也是一種冗余的方案,網(wǎng)卡綁定,多個(gè)網(wǎng)卡協(xié)同工作,其中某個(gè)網(wǎng)卡故障,或者某條網(wǎng)線故障,都不會(huì)影響到整個(gè)網(wǎng)絡(luò)的正常連通,自然而然就能實(shí)現(xiàn)冗余功能了?!?/p>
以上三個(gè)方面,可以說(shuō)是服務(wù)器網(wǎng)卡的優(yōu)點(diǎn),也是服務(wù)器網(wǎng)卡的價(jià)值所在。服務(wù)器網(wǎng)卡技術(shù),跟其他子系統(tǒng)一樣,也在不斷的發(fā)展,笨人才疏學(xué)淺,所知不過(guò)其中萬(wàn)一,這篇小文,希望能起到拋磚引玉的作用,期待以與廣大喜歡研究服務(wù)器硬件的朋友,一起探討服務(wù)器的各類問(wèn)題!