全國服務(wù)熱線:400-080-4418

您現(xiàn)在的位置是:首頁 > 新聞資訊 > 網(wǎng)站建設(shè)常識(shí)

門戶網(wǎng)站負(fù)載均衡技術(shù)的六大新挑戰(zhàn)2010/11/26 12:02:07 瀏覽:48

  發(fā)展到今天,一方面硬件設(shè)備依然保持了強(qiáng)勁的實(shí)力,另一方面以LVS、Haproxy為代表的軟件負(fù)載均衡也異軍突起,被人們所認(rèn)可。在新浪,軟、硬件負(fù)載均衡并存的格局已有三年多的歷史了,除了既往積累的經(jīng)驗(yàn)外,近一年來,我們也看到了負(fù)載均衡所面臨的一些新挑戰(zhàn),在此跟大家分享。

  挑戰(zhàn)一:Web應(yīng)用對(duì)七層交換的依賴度越來越大,顯著增加了負(fù)載均衡器的壓力。

  七層交換技術(shù)的引入,極大地解放了架構(gòu)師和程序開發(fā)人員,同時(shí)也使我們?cè)絹碓搅?xí)慣依賴于它,甚至直呼上癮。很難想象,如果沒有負(fù)載均衡器的話,現(xiàn)有Web架構(gòu)中的大量需求應(yīng)該如何實(shí)現(xiàn)? 在充分享受其便利性的同時(shí),我們也看到了一些隱憂。一方面越來越多的流量正從四層交換轉(zhuǎn)為七層交換;另一方面七層交換的規(guī)則也越來越趨于復(fù)雜。在雙重作用下,負(fù)載均衡器的壓力急劇上升。對(duì)于任何一臺(tái)負(fù)載均衡器來說:支撐相同的請(qǐng)求量,七層交換所消耗的CPU要遠(yuǎn)遠(yuǎn)高于四層交換。特別是在瞬間高并發(fā)連接的突發(fā)流量面前,負(fù)載均衡器面臨著嚴(yán)峻的挑戰(zhàn)。

  挑戰(zhàn)二:微博等互聯(lián)網(wǎng)新興產(chǎn)品的出現(xiàn),對(duì)負(fù)載均衡器的運(yùn)維工作提出了更高的要求。

  微博不僅改變著億萬網(wǎng)民的生活,而且也正悄然推動(dòng)著運(yùn)維體系的建設(shè)。

  首先,與傳統(tǒng)的新聞、博客相比,微博用戶對(duì)服務(wù)質(zhì)量的敏感度更高,而且這種敏感度會(huì)伴隨著一次次的“@”和“轉(zhuǎn)發(fā)”傳播擴(kuò)散。在過去,當(dāng)用戶訪問新浪服務(wù)感到慢時(shí),反映的渠道多是打客戶電話。而現(xiàn)在只需要在微博上一個(gè)簡(jiǎn)單的“@” 就可以與新浪的客服和技術(shù)人員直接溝通。作為流量進(jìn)出的一個(gè)關(guān)卡,當(dāng)微博等線上關(guān)鍵業(yè)務(wù)出現(xiàn)訪問異;蚬收蠒r(shí),工程師們都迫切地想知道:是負(fù)載均衡器的問題嗎?此時(shí)故障診斷的效率顯得至關(guān)重要。在實(shí)際工作中我們發(fā)現(xiàn):?jiǎn)渭円揽控?fù)載均衡器提供的CPU、內(nèi)存、連接數(shù)等統(tǒng)計(jì)信息,還不足以發(fā)現(xiàn)一些隱蔽問題。傳統(tǒng)的抓包分析耗時(shí)耗力且效果不佳,再加上有些故障現(xiàn)象與客戶端、后臺(tái)服務(wù)器上的某些特殊設(shè)置有著千絲萬縷的聯(lián)系,所有這些交織在一起,給我們故障診斷帶來了不小的挑戰(zhàn)。例如有次我們發(fā)現(xiàn):負(fù)載均衡器偶爾會(huì)給客戶端返回HTTP  5xx的響應(yīng),當(dāng)時(shí)特想快速地知道究竟是什么樣的HTTP請(qǐng)求會(huì)觸發(fā)這樣的現(xiàn)象。但可惜的是,負(fù)載均衡器上僅有統(tǒng)計(jì)數(shù)字而沒有請(qǐng)求的完整記錄。在花了很大力氣抓包分析后,終定位到是由于后臺(tái)一個(gè)PHP程序不小心給頁面設(shè)置了一個(gè)錯(cuò)誤的HTTP Header,導(dǎo)致Web Server的HTTP響應(yīng)不能被負(fù)載均衡器所接受,終給客戶端返回5xx。因此在故障診斷方面,我們需要有更先進(jìn)的理念和手段。

  其次,微博在國內(nèi)正處于快速成長(zhǎng)期,會(huì)隨時(shí)根據(jù)訪問量來靈活調(diào)整服務(wù)器的數(shù)量和系統(tǒng)架構(gòu)。在這種快速靈活的變化面前,負(fù)載均衡器相關(guān)的配置調(diào)整工作也隨之增加:頻繁的上下線服務(wù)器、變更七層規(guī)則等。面對(duì)這種情況,我們需要思考:如何能更加快速安全地完成好這些變更、如何能避免工程師每天被動(dòng)地陷入這些重復(fù)煩瑣的工作中等。目前一些硬件設(shè)備提供了API接口,像增刪Server、調(diào)整Server 權(quán)重等這類風(fēng)險(xiǎn)性極低的操作可通過API接口操作,以達(dá)到提高效率的目的。而Haproxy、LVS則缺乏這樣的 API接口,需要單獨(dú)開發(fā)。

  除此之外,關(guān)鍵應(yīng)用對(duì)負(fù)載均衡器的監(jiān)控也有越來越多的新需求。比如:有些應(yīng)用希望當(dāng)負(fù)載均衡器檢測(cè)到服務(wù)器池中活躍的服務(wù)器數(shù)量少于一定比例后,便提前給系統(tǒng)管理員作出預(yù)警;及時(shí)發(fā)現(xiàn)服務(wù)器池中權(quán)重等設(shè)置不合理的問題等。

  挑戰(zhàn)三:多核處理器時(shí)代下,Haproxy等用戶態(tài)的軟件負(fù)載均衡正面臨新的性能瓶頸。

  近幾年來CPU發(fā)展進(jìn)入了多核時(shí)代,CPU由過去的單核發(fā)展到四核、六核、八核、十二核,甚至更多,而主頻則變化不大。在這種趨勢(shì)下,充分利用多核特性顯得尤為重要。但在我們研究中發(fā)現(xiàn),像Haproxy這類基于用戶態(tài)的軟件負(fù)載均衡,其對(duì)CPU主頻的依賴度要遠(yuǎn)遠(yuǎn)高于CPU核數(shù)。換言之,在高主頻、核數(shù)少CPU下的性能很有可能要優(yōu)于低主頻、核數(shù)多的CPU。這一點(diǎn),在Haproxy服務(wù)器選型時(shí)尤為重要。據(jù)我們分析,這主要是由于操作系統(tǒng)對(duì)多核(多CPU)下的并發(fā)支持度還不夠好。[Page]

  挑戰(zhàn)四:軟件負(fù)載均衡發(fā)展路上的“雞蛋-籃子”理論的艱難選擇。

  硬件負(fù)載均衡器往往以單臺(tái)高性能著稱,而Haproxy、LVS為代表的軟件負(fù)載均衡的優(yōu)勢(shì)則在于成本低廉、可靈活定制,其性能與服務(wù)器CPU、網(wǎng)卡等硬件直接相關(guān)(當(dāng)然特殊的優(yōu)化也很重要)。正如前面提到的,當(dāng)七層交換流量越來越大時(shí),我們究竟是該投入成本讓單臺(tái)LVS、Haproxy足以支撐如此大的流量,還是讓更多中等性能的服務(wù)器共同分擔(dān)這些流量呢?這就是所謂的經(jīng)典的“雞蛋-籃子”理論:究竟該不該將雞蛋放到一個(gè)籃子里呢?

  其實(shí)不同的選擇各有利弊。2~3年前,我比較贊同將流量分?jǐn)偟蕉嗯_(tái)軟件負(fù)載均衡器上,當(dāng)時(shí)主要考慮到風(fēng)險(xiǎn)的分散。而現(xiàn)在,我更傾向于將流量集中于一臺(tái)上。之所以這樣,是從以下四個(gè)角度考慮的。

  第一,目前國內(nèi)IDC內(nèi)每個(gè)機(jī)架所放服務(wù)器數(shù)量跟電力配額直接相關(guān)。而負(fù)載均衡由于其特殊性,往往是兩臺(tái)為一組,這樣每增加一組都會(huì)增加額外的電力開銷,特別是在電力資源緊張的IDC內(nèi),提高單臺(tái)軟件負(fù)載均衡器的承載能力可以為關(guān)鍵業(yè)務(wù)騰出更多的機(jī)架來。

  第二,從服務(wù)穩(wěn)定角度考慮,我們通常會(huì)將LVS、Haproxy直連核心交換機(jī),如此一來,每增加一組,就意味著會(huì)占用更多的核心交換機(jī)端口資源。

  第三,是基于管理成本的考慮。LVS、Haproxy之所以能在新浪得到廣泛應(yīng)用,較低的管理成本是重要原因之一。在新浪我們通過一套集中管理平臺(tái)和快速初始化的辦法實(shí)現(xiàn)了運(yùn)維成本的非線性增加。但不可否認(rèn)的是,每新增一組,運(yùn)維成本或多或少總會(huì)增加一些。之前也曾設(shè)計(jì)過一套“同機(jī)房?jī)?nèi)負(fù)載均衡器的集群池方案”,即:在一個(gè)機(jī)房?jī)?nèi)主備機(jī)的數(shù)量比不再固定為1:1, 虛擬IP(VIP)會(huì)根據(jù)集群池中每臺(tái)Haproxy/LVS的負(fù)載狀況,動(dòng)態(tài)地“漂”在其中某臺(tái)上。但后來發(fā)現(xiàn)這個(gè)“聽起來很美”的方案,在實(shí)際運(yùn)行中遇到了種種問題,運(yùn)維成本不降反升。終我們又回歸了傳統(tǒng)的1臺(tái)Active+1臺(tái)Standby的模式,正所謂簡(jiǎn)單即是美。

  第四,目前硬件負(fù)載均衡器正朝著“更高的性價(jià)比”方向發(fā)展,換句話來講,如果我們不提升軟件負(fù)載均衡器的單機(jī)支撐能力,則終有一天,其與硬件設(shè)備相比的成本優(yōu)勢(shì)將會(huì)淡去。

  挑戰(zhàn)五:在新時(shí)期下,如何找到負(fù)載均衡的佳軟硬結(jié)合之道?

  朋友、同行聚會(huì)時(shí),常有人問我:“你們有了Haproxy、LVS后,會(huì)不會(huì)不買硬件設(shè)備了?”、“你近又在山寨什么?”每次聽到這些,我都會(huì)微微一笑。如前文所述,Haproxy、LVS這類的軟件負(fù)載均衡和硬件設(shè)備各有優(yōu)勢(shì),在我看來,負(fù)載均衡的“軟”、“硬”解決方案并非水火不容,只要找到佳的軟硬結(jié)合之道,魚和熊掌還是可以兼得的。下面是我們?cè)陂L(zhǎng)期摸索中,總結(jié)出來的一些經(jīng)驗(yàn)。

  軟件負(fù)載均衡可優(yōu)先承擔(dān)四層交換流量,讓硬件設(shè)備更專注于七層交換:由于工作方式和原理的不同,專注于四層交換的LVS在穩(wěn)定性、單機(jī)支撐能力、易維護(hù)性、管理成本等多方面均要大大優(yōu)于Haproxy。特別是在DR模式(即單臂)下, 單臺(tái)LVS足以應(yīng)對(duì)絕大多數(shù)業(yè)務(wù)的訪問量。

  優(yōu)先保障“明星”產(chǎn)品占用寶貴的硬件設(shè)備資源:這里指的“明星產(chǎn)品”是指那些用戶群正處于快速增長(zhǎng),并被廣泛追捧的熱點(diǎn)互聯(lián)網(wǎng)產(chǎn)品,例如微博。考慮到負(fù)載均衡器一旦發(fā)生異;蝈礄C(jī)后,將對(duì)產(chǎn)品的美譽(yù)度和用戶體驗(yàn)產(chǎn)生一定程度的影響,這屬于無形成本的損失。正所謂“好鋼要用在刀刃上”,我們可以優(yōu)先將這類流量放到硬件負(fù)載均衡器上。

  對(duì)于必須采用七層交換的重點(diǎn)服務(wù)來說,盡量避免同一重點(diǎn)服務(wù)的流量全部放在軟件負(fù)載均衡器上。例如某重點(diǎn)服務(wù)分布于四個(gè)IDC內(nèi),則可考慮兩個(gè)IDC內(nèi)使用Haproxy,另外兩個(gè)IDC使用硬件設(shè)備。這樣一方面可以在一定程度上規(guī)避使用Haproxy可能帶來的風(fēng)險(xiǎn),另一方面也方便對(duì)軟、硬件負(fù)載均衡器的穩(wěn)定性、響應(yīng)時(shí)間等進(jìn)行長(zhǎng)期對(duì)比觀察。[Page]

  要充分利用好同一IDC內(nèi)的軟、硬件負(fù)載均衡器,當(dāng)一方負(fù)載高時(shí),另一方可協(xié)助其分擔(dān)流量,緩解燃眉之急。

  總而言之,在負(fù)載均衡方面的支出正所謂該花則花、該省則省,合理使用可以讓你在保障服務(wù)穩(wěn)定的前提下,獲得佳的投入產(chǎn)出比。

  挑戰(zhàn)六:軟件負(fù)載均衡器的資源復(fù)用,在降低成本的同時(shí),同時(shí)也面臨著一定的運(yùn)維風(fēng)險(xiǎn)。

  目前我們的軟件負(fù)載均衡器分布于全國各地,其中一些中小規(guī)模IDC內(nèi)的軟件負(fù)載均衡器的負(fù)載并不是特別高,而這些機(jī)房普遍又需要VPN、自動(dòng)安裝等服務(wù),單獨(dú)為這些服務(wù)再放1~2組服務(wù)器顯得很不劃算。因此我們想到對(duì)軟件負(fù)載均衡器進(jìn)行資源的復(fù)用,即:在軟件負(fù)載均衡器上同時(shí)運(yùn)行VPN等服務(wù)。在實(shí)際中發(fā)現(xiàn),這種資源復(fù)用面臨兩方面的風(fēng)險(xiǎn):一是VPN、自動(dòng)安裝、負(fù)載均衡可能分屬于不同的管理員,這樣大家對(duì)同臺(tái)服務(wù)器進(jìn)行操作會(huì)增大因配置沖突、操作不當(dāng)?shù)葘?dǎo)致的服務(wù)間互相影響的概率;二是非負(fù)載均衡的服務(wù)可能會(huì)突發(fā)占用過多的CPU或網(wǎng)絡(luò)資源,對(duì)正常的負(fù)載均衡服務(wù)造成了一定的影響。

    由于LVS、Haproxy服務(wù)的特殊性,像Xen這類通過虛擬化來實(shí)現(xiàn)資源隔離的辦法又不太適用;對(duì)服務(wù)器流量進(jìn)行QOS設(shè)置,雖然可以起到一定的效果,但配置方面還是有些煩瑣。還有更好的辦法嗎?這確實(shí)值得我們思考。

  當(dāng)然除了以上六方面挑戰(zhàn)外,負(fù)載均衡領(lǐng)域還有很多值得研究之處。不同網(wǎng)站有不同的實(shí)際情況,希望本文能對(duì)大家起到拋磚引玉的作用。

服務(wù)網(wǎng)絡(luò)

關(guān)于我們

網(wǎng)至普專注于網(wǎng)站建設(shè)/網(wǎng)站優(yōu)化,始終追求 “您的滿意,我的追求!”。懂您所需、做您所想!我們一直在思考如何為客戶創(chuàng)造更大的價(jià)值,讓客戶更省心!立足上海,服務(wù)全國。服務(wù):上海,北京,廣州,深圳,成都,杭州,南京,蘇州,無錫等地

查看更多 >>

聯(lián)系我們

Copyright 2008 © 上海網(wǎng)至普信息科技有限公司 All rights reserved. 滬ICP備11006570號(hào)-13 滬公網(wǎng)安備 31011402007386號(hào)


關(guān)于我們 | 聯(lián)系我們 | 網(wǎng)站建設(shè)

返回頂部