色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

重新思考邊緣負(fù)載均衡

馬哥Linux運(yùn)維 ? 來源:簡書-DeepNoMind ? 2023-06-05 14:48 ? 次閱讀

目標(biāo)

Netflix的云網(wǎng)關(guān)團(tuán)隊(duì)一直致力于幫助系統(tǒng)減少錯誤,獲得更高的可用性,并提高故障恢復(fù)能力。因?yàn)镹etflix每秒有超過一百萬次請求,即使是很低的錯誤率也會影響到會員體驗(yàn),所以每一點(diǎn)提升都有幫助。

因此,我們向Zuul和其他團(tuán)隊(duì)學(xué)習(xí),改進(jìn)負(fù)載均衡實(shí)現(xiàn),以進(jìn)一步減少由服務(wù)器過載引起的錯誤。

背景

Zuul以前用基于輪詢的Ribbon負(fù)載均衡器[3],并基于某些過濾機(jī)制將連接失敗率高的服務(wù)器列入黑名單。

過去幾年里,我們做了一些改進(jìn)和定制,比如向最近上線的服務(wù)器發(fā)送較少流量,以避免過載。這些改進(jìn)已經(jīng)取得了顯著效果,但對于某些問題比較多的原始集群,還是會看到與負(fù)載相關(guān)的錯誤率遠(yuǎn)高于預(yù)期。

如果集群中所有服務(wù)器都過載,那選擇哪一臺服務(wù)器幾乎沒有什么區(qū)別,不過現(xiàn)實(shí)中我們經(jīng)??吹街挥心硞€服務(wù)器子集過載的情況。例如:

服務(wù)器冷啟動后(在紅黑部署和觸發(fā)自動伸縮期間)。

由于大量動態(tài)屬性/腳本/數(shù)據(jù)更新或大型GC事件,服務(wù)器暫時變慢/阻塞。

服務(wù)器硬件問題。經(jīng)常會看到某些服務(wù)器運(yùn)行得總是比其他服務(wù)器慢,有可能是由于鄰居節(jié)點(diǎn)占用太多資源,也可能因?yàn)橛布煌?/p>

指導(dǎo)原則

在開始一個項(xiàng)目時,需要記住一些原則,從而幫助指導(dǎo)在設(shè)計軟件時需要做出的大大小小的決定,這個項(xiàng)目基于的原則如下。

在現(xiàn)有負(fù)載均衡器框架的約束下工作

我們已經(jīng)將之前定制的負(fù)載均衡器集成到了Zuul代碼庫中,從而使得無法與Netflix的其他團(tuán)隊(duì)共享這些定制。因此,我們決定這次基于約束條件并做出額外投資,從一開始就考慮復(fù)用,從而能夠直接在其他系統(tǒng)中使用,減少重新發(fā)明輪子的代價。

向他人學(xué)習(xí)

嘗試在他人的想法和實(shí)現(xiàn)基礎(chǔ)上構(gòu)建,例如之前在Netflix其他IPC棧中試用的"二選一(choice-of-2)"和"試用期(probation)"算法。

避免分布式狀態(tài)

選擇本地決策,避免跨集群協(xié)調(diào)狀態(tài)的彈性問題、復(fù)雜性和滯后。

避免客戶端配置和手動調(diào)優(yōu)

多年來基于Zuul的操作經(jīng)驗(yàn)表明,將服務(wù)配置的部分置于不屬于同一團(tuán)隊(duì)的客戶服務(wù)中會導(dǎo)致問題。

一個問題是,客戶端配置往往與服務(wù)端不斷變化的現(xiàn)實(shí)不同步,或者在不同團(tuán)隊(duì)擁有的服務(wù)之間引入耦合的變更管理。

例如,用于服務(wù)X的EC2實(shí)例類型升級,導(dǎo)致該集群所需節(jié)點(diǎn)減少。因此,現(xiàn)在服務(wù)Y中的"每臺主機(jī)最大連接數(shù)"客戶端配置應(yīng)該增加,以反映新增加的容量。應(yīng)該先對客戶端進(jìn)行更改,還是先對服務(wù)端進(jìn)行更改,還是同時對兩者進(jìn)行更改?更有可能的是,完全忘了要改配置,從而導(dǎo)致更多問題。

盡可能不要配置靜態(tài)閾值,而是采用基于當(dāng)前流量、性能和環(huán)境變化的自適應(yīng)機(jī)制。

當(dāng)需要靜態(tài)閾值時,與其讓服務(wù)團(tuán)隊(duì)將閾值配置協(xié)調(diào)到每個客戶端,不如讓服務(wù)在運(yùn)行時進(jìn)行通信,以避免跨團(tuán)隊(duì)邊界推動更改的問題。

負(fù)載均衡方法

主要的想法是,雖然服務(wù)器延遲的最佳數(shù)據(jù)來源是客戶端視圖,但服務(wù)器利用率的最佳數(shù)據(jù)來源是服務(wù)器本身。結(jié)合這兩種數(shù)據(jù)源,可以得到最有效的負(fù)載均衡。

我們基于一組互補(bǔ)機(jī)制,其中大多數(shù)已經(jīng)被其他人開發(fā)和使用過,只是以前可能沒有以這種方式組合。

用于在服務(wù)器之間進(jìn)行選擇的二選一算法(choice-of-2 algorithm)。

基于服務(wù)器利用率的負(fù)載均衡器視圖進(jìn)行主負(fù)載均衡。

基于服務(wù)器利用率的服務(wù)器視圖進(jìn)行二次均衡。

基于試用期和基于服務(wù)器世代的機(jī)制,避免新啟動的服務(wù)器過載。

隨著時間推移,收集的服務(wù)器統(tǒng)計數(shù)據(jù)衰減為零。

Join-the-Shortest-Queue和服務(wù)器報告利用率相結(jié)合

我們選擇支持常用的Join-the-shortest-queue(JSQ)算法,并將服務(wù)器報告的利用率作為第二算法,以嘗試結(jié)合兩者達(dá)到最佳效果。

JSQ的問題

Join-the-shortest-queue對于單個負(fù)載均衡器非常有效,但如果跨負(fù)載均衡器集群使用,則會出現(xiàn)嚴(yán)重問題。負(fù)載均衡器會傾向于在同一時間選擇相同的低利用率服務(wù)器,從而造成超載,然后轉(zhuǎn)移到下一個利用率最低的服務(wù)器并造成超載,以此類推……

通過結(jié)合使用JSQ和二選一算法,可以在很大程度上消除羊群問題,除了負(fù)載均衡器沒有完整的服務(wù)器使用信息之外,其他方面都很好。

JSQ通常僅從本地負(fù)載均衡器計算到服務(wù)器的正在使用的連接數(shù)量來實(shí)現(xiàn),但是當(dāng)有10到100個負(fù)載均衡器節(jié)點(diǎn)時,本地視圖可能會產(chǎn)生誤導(dǎo)。

f1cfdb6e-025c-11ee-90ce-dac502259ad0.png

單個負(fù)載平衡器的觀點(diǎn)可能與實(shí)際情況大不相同

例如,在上圖中,負(fù)載均衡器A有一個到服務(wù)器X的請求和一個到服務(wù)器Z的請求,但沒有到服務(wù)器Y的請求。所以當(dāng)它收到新請求時,基于本地數(shù)據(jù),選擇利用率最小的服務(wù)器,會選擇服務(wù)器Y,但這不是正確的選擇。服務(wù)器Y實(shí)際上負(fù)載最重,其他兩個負(fù)載均衡器目前都有請求發(fā)送到服務(wù)器Y上,但負(fù)載均衡器A沒有辦法知道。

這說明單個負(fù)載均衡器的觀點(diǎn)與實(shí)際情況完全不同。

在只依賴客戶端視圖時遇到的另一個問題是,對于大型集群(特別是與低流量相結(jié)合時),負(fù)載均衡器通常只有幾個活躍連接,和集群中的某個子集交互。因此,當(dāng)它選擇哪個服務(wù)器負(fù)載最少時,通常只是在若干個它認(rèn)為負(fù)載都是0的服務(wù)器之間進(jìn)行選擇,而并沒有關(guān)于所選服務(wù)器的利用率的數(shù)據(jù),所以只能盲猜。

這個問題的解決方案是與所有其他負(fù)載均衡器共享所有活躍連接數(shù)狀態(tài)……但這樣就需要解決分布式狀態(tài)問題。

考慮到獲得的好處要大于付出的成本,因此我們通常只將分布式可變狀態(tài)作為最后手段:

分布式狀態(tài)增加了部署和金絲雀發(fā)布等任務(wù)的運(yùn)維開銷和復(fù)雜性。

彈性風(fēng)險與數(shù)據(jù)損壞的爆炸半徑相關(guān)(1%負(fù)載均衡器上數(shù)據(jù)損壞讓人煩惱,但100%負(fù)載均衡器上數(shù)據(jù)損壞會造成停機(jī))。

在負(fù)載均衡器之間實(shí)現(xiàn)P2P分布式狀態(tài)系統(tǒng)的成本,或者運(yùn)維一個具有處理大量讀寫流量所需的性能和彈性憑證的單一數(shù)據(jù)庫的成本。

另一種更簡單的解決方案(也是我們選擇的),是依賴于服務(wù)器向每個負(fù)載均衡器報告資源使用情況……

服務(wù)器報告使用率

服務(wù)器主動上報其使用率的好處是可以提供所有使用了該服務(wù)器的負(fù)載均衡器的完整信息,從而避免JSQ的不完整問題。

對此有兩種實(shí)現(xiàn)方式:

運(yùn)行狀況檢查端點(diǎn)主動輪詢每個服務(wù)器的當(dāng)前利用率。

被動跟蹤來自服務(wù)器的響應(yīng),并標(biāo)注其當(dāng)前利用率數(shù)據(jù)。

我們選擇第二種方式,其實(shí)現(xiàn)簡單,可以頻繁更新數(shù)據(jù),避免了N個負(fù)載均衡器每隔幾秒鐘輪詢M個服務(wù)器所帶來的額外開銷。

被動策略的影響是,負(fù)載均衡器向一臺服務(wù)器發(fā)送請求的頻率越高,獲得的該服務(wù)器的利用率數(shù)據(jù)就越新。因此RPS越高,負(fù)載均衡的有效性就越高。但反過來,RPS越低,負(fù)載均衡的效果就越差。

這對我們來說不是問題,但對于通過特定負(fù)載均衡器處理低RPS(同時通過另一個負(fù)載均衡器處理高RPS)的服務(wù)來說,主動輪詢運(yùn)行狀況檢查可能更有效。臨界點(diǎn)是負(fù)載均衡器向每個服務(wù)器發(fā)送的RPS低于運(yùn)行狀況檢查的輪詢頻率。

服務(wù)端實(shí)現(xiàn)

我們在服務(wù)端通過簡單跟蹤活躍請求計數(shù)來實(shí)現(xiàn),將其轉(zhuǎn)換為該服務(wù)器配置的最大百分比,并將其作為HTTP響應(yīng)報頭:

X-Netflix.server.utilization: [, target=]

服務(wù)器可以指定可選的目標(biāo)利用率,從而標(biāo)識預(yù)期在正常條件下運(yùn)行的利用率百分比,負(fù)載均衡器基于這一數(shù)據(jù)進(jìn)行粗粒度過濾,后面會詳細(xì)介紹。

我們嘗試使用活躍計數(shù)以外的指標(biāo),例如操作系統(tǒng)報告的cpu利用率和平均負(fù)載,但發(fā)現(xiàn)它們會引起振蕩,原因似乎是因?yàn)樗鼈兪腔跐L動平均值計算的,因此有一定的延遲。所以我們決定現(xiàn)在只用相對簡單的實(shí)現(xiàn),即只計算活躍請求。

用二選一算法代替輪詢

由于我們希望能夠通過比較服務(wù)器的統(tǒng)計數(shù)據(jù)來選擇服務(wù)器,因此不得不拋棄現(xiàn)有的簡單輪詢實(shí)現(xiàn)。

我們在Ribbon算法中嘗試的一個替代方案是JSQ與ServerListSubsetFilter相結(jié)合,以減少分布式JSQ的羊群問題。這樣可以得到合理的結(jié)果,但是結(jié)果在目標(biāo)服務(wù)器之間的請求分布仍然過于分散。

因此,我們參考了Netflix另一個團(tuán)隊(duì)的早期經(jīng)驗(yàn),并實(shí)現(xiàn)了"二選一(Choice-of-2)"算法。這樣做的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,使負(fù)載均衡器的cpu成本較低,并能提供良好的請求分布。

根據(jù)綜合因素進(jìn)行選擇

為了在服務(wù)器之間進(jìn)行選擇,我們比較了3個不同的因素:

客戶端運(yùn)行狀況: 該服務(wù)器連接相關(guān)錯誤的滾動百分比。

服務(wù)器利用率: 該服務(wù)器的最新利用率數(shù)據(jù)。

客戶端利用率: 從當(dāng)前負(fù)載均衡器發(fā)送到該服務(wù)器的活躍請求數(shù)。

這3個因素被用來為每個服務(wù)器計算分?jǐn)?shù),然后比較總分?jǐn)?shù)選擇獲勝者。

像這樣使用多個因素確實(shí)會使實(shí)現(xiàn)更加復(fù)雜,但可以避免僅依賴一個因素可能出現(xiàn)的邊際問題。

例如,如果一臺服務(wù)器開始出現(xiàn)故障并拒絕所有請求,那么上報的利用率將會低得多(因?yàn)榫芙^請求比接受請求開銷更小),如果這是唯一考慮的因素,那么所有負(fù)載均衡器將開始向那臺壞服務(wù)器發(fā)送更多請求??蛻舳诉\(yùn)行狀況因素緩解了這種情況。

過濾

當(dāng)隨機(jī)選擇2臺服務(wù)器進(jìn)行比較時,會過濾掉任何超過安全利用率配置和運(yùn)行狀況閾值的服務(wù)器。

每個請求都會進(jìn)行這種過濾,以避免定期過濾會出現(xiàn)的過時問題。為了避免在負(fù)載均衡器上造成較高的cpu負(fù)載,我們盡力而為(best-effort)嘗試N次來隨機(jī)選擇一個可用服務(wù)器,然后在必要時回退到未篩選的服務(wù)器。

當(dāng)服務(wù)器池中有很大一部分存在長期問題時,這樣的篩選非常有用。在這種情況下,隨機(jī)選擇2個服務(wù)器通常會出現(xiàn)選擇了2個壞服務(wù)器進(jìn)行比較的情況。

但缺點(diǎn)是這依賴于靜態(tài)配置閾值,而這是我們試圖避免的。測試結(jié)果讓我們相信這點(diǎn)依賴是值得的,即使只依賴一些通用(非特定于服務(wù)的)閾值。

試用期

對于任何沒有發(fā)送響應(yīng)給負(fù)載均衡器的服務(wù)器,一次只允許一個活躍請求,隨后會過濾掉這些試用服務(wù)器,直到收到來自它們的響應(yīng)。

這有助于避免新啟動的服務(wù)器還沒有機(jī)會顯示使用率數(shù)據(jù)之前就因大量請求而超載。

基于服務(wù)器世代的預(yù)熱

我們基于服務(wù)器世代在服務(wù)器啟動的前90秒內(nèi)逐步增加流量。

這是另一種有用的機(jī)制,就像試用期一樣,可以在微妙的發(fā)布后增加一些關(guān)于服務(wù)器過載的警告。

統(tǒng)計衰變

為確保服務(wù)器不會被永久列入黑名單,我們將衰減率應(yīng)用到所有用于負(fù)載均衡的統(tǒng)計數(shù)據(jù)上(目前是30秒的線性衰減)。例如,如果一個服務(wù)器的錯誤率上升到80%,停止向它發(fā)送流量,使用的數(shù)據(jù)將在30秒內(nèi)衰減為零,比方說15秒后是會是40%)。

運(yùn)維影響

差距更大的請求分布

不用輪詢進(jìn)行負(fù)載均衡的負(fù)面影響是,以前服務(wù)器之間的請求分布非常均衡,現(xiàn)在服務(wù)器之間的負(fù)載差距更大。

"二選一"算法在很大程度上能緩解這種情況(與跨集群中所有服務(wù)器或服務(wù)器子集的JSQ相比),但不可能完全避免。

因此,在運(yùn)維方面確實(shí)需要考慮這一點(diǎn),特別是在金絲雀分析中,我們通常比較請求計數(shù)、錯誤率、cpu等的絕對值。

越慢的服務(wù)器接收的流量越少

顯然這是預(yù)期效果,但對于習(xí)慣于輪詢的團(tuán)隊(duì)來說,流量是平等分配的,這對運(yùn)維方面會產(chǎn)生連鎖反應(yīng)。

由于跨原始服務(wù)器的流量分布現(xiàn)在依賴于它們的利用率,如果一些服務(wù)器正在運(yùn)行效率更高或更低的不同構(gòu)建,那么將接收到更多或更少的流量。所以:

當(dāng)集群采用紅黑部署時,如果新的服務(wù)器組性能下降,那么該組的流量比例將小于50%。

同樣的效果可以在金絲雀集群中看到,基線組可能會接收到與金絲雀組不同的流量。所以當(dāng)我們著眼于指標(biāo)時,最好著眼于RPS和CPU的組合(例如RPS在金絲雀中可能更低,而CPU相同)。

更低效的異常值檢測。我們通常會自動監(jiān)控集群中的異常服務(wù)器(通常是由于硬件問題導(dǎo)致啟動速度變慢的虛擬機(jī))并終止它們,當(dāng)由于負(fù)載均衡而接收較少流量時,這種檢測就更加困難。

滾動動態(tài)數(shù)據(jù)更新

從輪詢遷移到新的負(fù)載均衡器取得了很好的效果,可以很好的配合動態(tài)數(shù)據(jù)和屬性的分階段更新。

最佳實(shí)踐是每次在一個區(qū)域(數(shù)據(jù)中心)部署數(shù)據(jù)更新,以限制意外問題的爆發(fā)半徑。

即使數(shù)據(jù)更新本身沒有引起任何問題,服務(wù)器應(yīng)用更新的行為也會導(dǎo)致短暫的負(fù)載高峰(通常與GC相關(guān))。如果此峰值同時出現(xiàn)在集群中所有服務(wù)器上,則可能導(dǎo)致負(fù)載下降以及向上游傳播大量錯誤。在這種情況下,因?yàn)樗蟹?wù)器的負(fù)載都很高,負(fù)載均衡器幾乎無法提供幫助。

然而,如果考慮與自適應(yīng)負(fù)載均衡器結(jié)合使用,一個解決方案是在集群服務(wù)器之間進(jìn)行滾動數(shù)據(jù)更新。如果只有一小部分服務(wù)器同時應(yīng)用更新,那么只要還有足夠服務(wù)器能夠承載流量,負(fù)載均衡器就可以短暫減少到這些服務(wù)器的流量。

合成負(fù)載測試結(jié)果

在開發(fā)、測試和調(diào)優(yōu)負(fù)載均衡器時,我們廣泛使用了合成負(fù)載測試場景,這在使用真實(shí)集群和網(wǎng)絡(luò)驗(yàn)證有效性時非常有用,可以作為單元測試之后的可重復(fù)步驟,但還沒有使用真實(shí)用戶流量。

測試的更多細(xì)節(jié)在后面的附錄中列出,現(xiàn)總結(jié)要點(diǎn)如下:

與輪詢實(shí)現(xiàn)相比,啟用了所有功能的新負(fù)載均衡器在負(fù)載下降和連接錯誤方面降低了幾個數(shù)量級。

平均和長尾延遲有了實(shí)質(zhì)性改善(與輪詢實(shí)現(xiàn)相比減少了3倍)。

服務(wù)器本身由于添加了特性,顯著增加了價值,減少了一個數(shù)量級的錯誤以及大部分延遲。

f1f5ca2c-025c-11ee-90ce-dac502259ad0.png

結(jié)果比較

對實(shí)際生產(chǎn)流量的影響

我們發(fā)現(xiàn),只要服務(wù)器能夠處理,新負(fù)載均衡器就能非常有效的將盡可能多的流量分配到每個服務(wù)器。這對于在間歇和持續(xù)降級的服務(wù)器之間進(jìn)行路由具有很好的效果,無需任何人工干預(yù),從而避免工程師在半夜被叫醒處理重大生產(chǎn)問題。

很難說明在正常運(yùn)行時的影響,但在生產(chǎn)事故中甚至在某些服務(wù)的正常穩(wěn)態(tài)運(yùn)行中,可以看到對應(yīng)的影響。

事故發(fā)生時

最近的事故涉及到服務(wù)中的錯誤,該錯誤導(dǎo)致越來越多的服務(wù)器線程隨著時間的推移而阻塞。從服務(wù)器啟動的那一刻起,每小時都會阻塞幾個線程,直到最終達(dá)到最大負(fù)載并造成負(fù)載下降。

在下面的服務(wù)器RPS圖表中,可以看到在凌晨3點(diǎn)之前,服務(wù)器負(fù)載分布差距較大,這是由于負(fù)載均衡器向阻塞線程數(shù)量較多的服務(wù)器發(fā)送較少流量的緣故。然后,在凌晨3點(diǎn)25分之后,自動縮放啟動更多服務(wù)器,由于這些服務(wù)器還沒有任何線程阻塞,每個服務(wù)器收到的RPS大約是現(xiàn)有服務(wù)器的兩倍,可以成功處理更多流量。

f21a28b8-025c-11ee-90ce-dac502259ad0.png

每服務(wù)器RPS

現(xiàn)在,如果我們看一下同一時間范圍內(nèi)每臺服務(wù)器的錯誤率圖表,可以看到,在整個事故過程中,所有服務(wù)器的錯誤分布是相當(dāng)均勻的,盡管某些服務(wù)器的容量比其他服務(wù)器小得多。這表明負(fù)載均衡器在有效工作,而由于集群整體可用容量太小,因此所有服務(wù)器都被推到稍稍超過其有效容量的位置。

然后,當(dāng)自動縮放啟動新服務(wù)器時,新服務(wù)器處理了盡可能多的流量,以至于出現(xiàn)了與集群其他部分相同的錯誤。

f24fd9e0-025c-11ee-90ce-dac502259ad0.png

每服務(wù)器每秒錯誤

因此,綜上所述,負(fù)載均衡器在向服務(wù)器分配流量方面非常有效,但在這種情況下,沒有啟動足夠的新服務(wù)器,從而導(dǎo)致沒法將整體錯誤水平降至零。

穩(wěn)態(tài)

我們還看到,在某些服務(wù)中,由于GC事件而出現(xiàn)幾秒鐘的負(fù)載下降,因此穩(wěn)態(tài)噪聲顯著降低。從這里可以看出,啟用新的負(fù)載均衡器后,錯誤大幅減少:

f28818b4-025c-11ee-90ce-dac502259ad0.png

啟用新負(fù)載均衡器前后數(shù)周內(nèi)與負(fù)載相關(guān)的錯誤率

告警中的差距

一個意料之外的影響是突出了我們自動告警中的一些差距。一些基于服務(wù)錯誤率的現(xiàn)有告警,以前會在漸進(jìn)式問題只影響到集群的一小部分時發(fā)出告警,現(xiàn)在因?yàn)殄e誤率一直很低,告警會晚得多,或者根本不發(fā)出告警。這意味著,有時沒法將影響集群的大問題通知給團(tuán)隊(duì)。解決方案是增加對利用率指標(biāo)的偏差而不僅僅是錯誤指標(biāo)的額外告警來彌補(bǔ)這些差距。

結(jié)論

本文并不是為Zuul做宣傳(盡管它是一個偉大的系統(tǒng)),只是為代理/服務(wù)網(wǎng)格/負(fù)載均衡社區(qū)分享和增加了一個有趣的方法。Zuul是測試、實(shí)施和改進(jìn)這些類型負(fù)載均衡方案的偉大系統(tǒng),以Netflix的需求和規(guī)模來運(yùn)行,使我們有能力證明和改進(jìn)這些方法。

有許多不同方法可以改善負(fù)載均衡,而這個方法對我們來說效果很好,大大減少了與負(fù)載有關(guān)的錯誤率,并極大改善了真實(shí)流量的負(fù)載均衡。

然而,對于任何軟件系統(tǒng)來說,都應(yīng)該根據(jù)自己組織的限制和目標(biāo)來做決定,并盡量避免追求完美。

附錄--合成負(fù)載測試的結(jié)果

測試場景

這個負(fù)載測試場景重現(xiàn)了這樣一種情況: 小型原始集群正在進(jìn)行紅黑部署,而新部署的集群存在冷啟動問題或某種性能退化(通過人為在新部署的服務(wù)器上為每個請求注入額外延遲和cpu負(fù)載來模擬)。

該測試將4000 RPS發(fā)送到一個大型Zuul集群(200個節(jié)點(diǎn)),該集群反過來代理到一個小型Origin集群(20個實(shí)例),幾分鐘后,啟用第二個緩慢的Origin集群(另外20個實(shí)例)。

啟用所有功能

以下是啟用了所有功能的新負(fù)載均衡器的指標(biāo)圖表。

f2bb6a66-025c-11ee-90ce-dac502259ad0.png

啟用新負(fù)載均衡器所有功能進(jìn)行負(fù)載測試

作為參考,看看流量是如何在較快和較慢的服務(wù)器組之間分配的,可以看到,負(fù)載均衡器把發(fā)送到較慢組的比例減少到15%左右(預(yù)期50%)。

f2eb9452-025c-11ee-90ce-dac502259ad0.png

正常集群和慢速集群之間的流量分布

禁用服務(wù)器利用率

還是新負(fù)載均衡器,但禁用了服務(wù)器利用率功能,因此只有客戶端數(shù)據(jù)被用于均衡。

f30c7b68-025c-11ee-90ce-dac502259ad0.png

使用新負(fù)載均衡器進(jìn)行負(fù)載測試,但禁用了服務(wù)器利用率特性

原始實(shí)現(xiàn)

這是最初的輪詢負(fù)載均衡器與服務(wù)器黑名單功能。

f3448198-025c-11ee-90ce-dac502259ad0.png

使用原始負(fù)載均衡器進(jìn)行負(fù)載測試

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 均衡器
    +關(guān)注

    關(guān)注

    9

    文章

    219

    瀏覽量

    30395
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9295

    瀏覽量

    85894
  • 負(fù)載均衡
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    12384
  • Netflix
    +關(guān)注

    關(guān)注

    0

    文章

    90

    瀏覽量

    11235

原文標(biāo)題:重新思考邊緣負(fù)載均衡

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    負(fù)載均衡(Load Balance)

    負(fù)載均衡(Load Balance)   &nbs
    發(fā)表于 01-08 14:39 ?858次閱讀

    什么是服務(wù)器網(wǎng)絡(luò)負(fù)載均衡

    什么是服務(wù)器網(wǎng)絡(luò)負(fù)載均衡 什么是負(fù)載均衡?
    發(fā)表于 01-11 10:58 ?1810次閱讀

    負(fù)載均衡是什么意思?負(fù)載均衡器有什么用

    負(fù)載平衡也稱負(fù)載共享,是指對系統(tǒng)中的負(fù)載情況進(jìn)行動態(tài)調(diào)整,以盡量消除或減少系統(tǒng)中各節(jié)點(diǎn)負(fù)載均衡的現(xiàn)象。
    發(fā)表于 12-21 09:48 ?1.9w次閱讀
    <b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>是什么意思?<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>器有什么用

    負(fù)載均衡服務(wù)器有哪些

    負(fù)載均衡服務(wù)器是進(jìn)行負(fù)載分配的服務(wù)器。通過負(fù)載均衡服務(wù)器,將服務(wù)請求均衡分配到實(shí)際執(zhí)行的服務(wù)中,
    發(fā)表于 12-21 10:02 ?1180次閱讀
    <b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>服務(wù)器有哪些

    基于C-V2X邊緣服務(wù)器的動態(tài)負(fù)載均衡算法及研究

    為更好地解決蜂窩車聯(lián)網(wǎng)與移動邊緣計算融合應(yīng)用場景下邊緣服務(wù)器資源負(fù)載分配不均、資源利用率較低等問題,提岀一種動態(tài)負(fù)載均衡算法。通過監(jiān)測
    發(fā)表于 03-15 17:17 ?16次下載
    基于C-V2X<b class='flag-5'>邊緣</b>服務(wù)器的動態(tài)<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>算法及研究

    服務(wù)器負(fù)載均衡有幾種類型,做負(fù)載均衡好在哪

    對于服務(wù)器負(fù)載均衡可能很多朋友并不了解是什么,服務(wù)器負(fù)載均衡的簡單理解就是指對系統(tǒng)中的負(fù)載情況進(jìn)行動態(tài)調(diào)整,以盡量消除或減少系統(tǒng)中各節(jié)點(diǎn)
    的頭像 發(fā)表于 09-02 17:57 ?3316次閱讀

    apache反向代理和負(fù)載均衡總結(jié)

    apache反向代理和負(fù)載均衡總結(jié)(5g電源技術(shù)要求)-apache反向代理和負(fù)載均衡總結(jié) ? ? ? ? ? ? ? ?
    發(fā)表于 08-31 12:27 ?0次下載
    apache反向代理和<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>總結(jié)

    Apacheproxy負(fù)載均衡和Session復(fù)制

    Apacheproxy負(fù)載均衡和Session復(fù)制(電源技術(shù)交流群)-Apacheproxy負(fù)載均衡和Session復(fù)制? ? ? ? ? ? ? ? ? ??
    發(fā)表于 08-31 12:29 ?0次下載
    Apacheproxy<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>和Session復(fù)制

    解密負(fù)載均衡技術(shù)和負(fù)載均衡算法

    負(fù)載均衡器是一種軟件或硬件設(shè)備,它起到了將網(wǎng)絡(luò)流量分散到一組服務(wù)器的作用,可以防止任何一臺服務(wù)器過載。負(fù)載均衡算法就是負(fù)載
    的頭像 發(fā)表于 11-12 09:16 ?1174次閱讀

    高性能負(fù)載均衡的分類和算法

    高性能集群之所以復(fù)雜,主要原因是增加了任務(wù)分配器,以及為任務(wù)選擇合適的分配算法。負(fù)載均衡器就是任務(wù)分配器,負(fù)載均衡這個名稱已經(jīng)成為事實(shí)標(biāo)準(zhǔn),但負(fù)載
    的頭像 發(fā)表于 05-31 09:56 ?779次閱讀
    高性能<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>的分類和算法

    負(fù)載均衡是如何工作的?

    負(fù)載均衡是在多個物理服務(wù)器之間智能分配流量以最大化資源利用率的過程。換句話說,在兩臺或多臺計算機(jī)/服務(wù)器之間共享計算工作負(fù)載的過程就是負(fù)載均衡
    的頭像 發(fā)表于 06-15 17:26 ?715次閱讀

    SDWAN和負(fù)載均衡的關(guān)系

    SDWAN和負(fù)載均衡的關(guān)系
    的頭像 發(fā)表于 07-21 14:28 ?599次閱讀

    常見的幾種負(fù)載均衡技術(shù)介紹

    在大力建設(shè)算力網(wǎng)絡(luò)的大背景下,隨著SDN思潮的深入推進(jìn)、網(wǎng)絡(luò)集群的部署,負(fù)載均衡成為了一種不可或缺的技術(shù),它在云,網(wǎng),邊都起了至關(guān)重要的作用。本文會對常見的幾種負(fù)載均衡技術(shù)進(jìn)行介紹,同
    的頭像 發(fā)表于 09-25 10:30 ?1774次閱讀
    常見的幾種<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>技術(shù)介紹

    如何確定適合的負(fù)載均衡比例

    路由器的負(fù)載均衡是一種應(yīng)用于網(wǎng)絡(luò)中的技術(shù),它可以平衡網(wǎng)絡(luò)流量的分配,提高網(wǎng)絡(luò)的性能和穩(wěn)定性。在配置路由器的負(fù)載均衡時,選擇合適的負(fù)載
    的頭像 發(fā)表于 12-15 10:36 ?1691次閱讀

    nginx負(fù)載均衡配置介紹

    目錄 nginx負(fù)載均衡 nginx負(fù)載均衡介紹 反向代理與負(fù)載均衡 nginx
    的頭像 發(fā)表于 11-10 13:39 ?295次閱讀
    nginx<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>配置介紹
    主站蜘蛛池模板: 国产在线高清视频无码不卡 | 午夜aaaa| 99久久精品6在线播放 | 日韩免费一区二区三区在线 | 调教椅上的调教SM总裁被调教 | 拔擦拔擦8X永久华人免费播放器 | 国产亚洲综合视频 | 和老外3p爽粗大免费视频 | 国产一区二区内射最近更新 | 成人区精品一区二区不卡AV免费 | 做i爱视频30分钟免费 | 欲奴第一季在线观看全集 | 亚洲日本欧美产综合在线 | CHINA篮球体育飞机2023 | 久久合 | 亚洲qvod图片区电影 | 国产日韩高清一区二区三区 | 99麻豆精品国产人妻无码 | 强奷乱码欧妇女中文字幕熟女 | 国产原创中文视频 | 免费99精品国产自在现线 | 国产午夜永久福利视频在线观看 | 欧美亚洲日韩在线在线影院 | 国产在线观看码高清视频 | 国产在线精品视亚洲不卡 | 火影小南被爆羞羞网站 | 欧美激情视频一区二区 | 开心久久激情 | 超碰免费碰免费视频 | 日本护士hd | 久久99热只有频精品 | 公粗挺进了我的密道在线播放贝壳 | 欧美特级午夜一区二区三区 | 国产熟妇无码一区二 | 羞羞一区二区三区四区片 | 混乱家庭电影完整版在线看 | 在线播放国产视频 | YELLOW日本动漫免费动漫 | 在线视频a | 啊片色播电影 | 2020无码最新国产在线观看 |