自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何做好微服務(wù)容量規(guī)劃?

開發(fā) 項(xiàng)目管理
容量規(guī)劃系統(tǒng)的作用是根據(jù)各個(gè)微服務(wù)部署集群的最大容量和線上實(shí)際運(yùn)行的負(fù)荷,來決定各個(gè)微服務(wù)是否需要彈性擴(kuò)縮容,以及需要擴(kuò)縮容多少臺機(jī)器。

維護(hù)眾多服務(wù)需要巨大的努力,手動(dòng)操作已不再可行。以微博的動(dòng)態(tài)推送功能為例,僅遠(yuǎn)程過程調(diào)用(RPC)服務(wù)就接近40種。這些服務(wù)接口的性能和需求各不相同,一些接口雖然處理請求量大,但響應(yīng)迅速,稱為輕量級接口;另一些接口處理的請求量較少,但響應(yīng)時(shí)間較長,稱為重量級接口。

例如,在微博的動(dòng)態(tài)推送中,計(jì)數(shù)接口的響應(yīng)時(shí)間極短,僅需2至3毫秒,而動(dòng)態(tài)獲取接口的響應(yīng)時(shí)間則超過200毫秒。服務(wù)集群的規(guī)模差別明顯,擴(kuò)展所需的服務(wù)器數(shù)量也大相徑庭。比如微博的A/B測試服務(wù)可能只需增加幾臺服務(wù)器即可應(yīng)對增長,而動(dòng)態(tài)推送服務(wù)可能需要增加上百臺服務(wù)器。另外,在擴(kuò)展服務(wù)時(shí),還需注意服務(wù)間的相互依賴性,確保所有依賴的服務(wù)都有足夠的處理能力。例如,微博的動(dòng)態(tài)推送業(yè)務(wù)在擴(kuò)展時(shí)不僅依賴于現(xiàn)有的服務(wù)器容量,還依賴于用戶關(guān)系和卡片服務(wù)的容量是否充足。

容量規(guī)劃系統(tǒng)的作用是根據(jù)各個(gè)微服務(wù)部署集群的最大容量和線上實(shí)際運(yùn)行的負(fù)荷,來決定各個(gè)微服務(wù)是否需要彈性擴(kuò)縮容,以及需要擴(kuò)縮容多少臺機(jī)器。

容量評估一般集群的容量評估都是通過線上實(shí)際壓測來確定的,那么該如何進(jìn)行線上壓測呢?都需要注意哪些關(guān)鍵點(diǎn)呢?

1. 選擇合適的壓測指標(biāo)

在進(jìn)行性能測試時(shí),我們通常關(guān)注兩大類指標(biāo):系統(tǒng)指標(biāo)和服務(wù)指標(biāo)。系統(tǒng)指標(biāo)包括CPU使用率、內(nèi)存使用量、磁盤I/O和網(wǎng)絡(luò)帶寬等,而服務(wù)指標(biāo)涉及到接口的平均響應(yīng)時(shí)間、P999延遲(即99.9%的請求在這個(gè)時(shí)間內(nèi)得到響應(yīng))和錯(cuò)誤率。然而,這些指標(biāo)并不總是能夠準(zhǔn)確地反映系統(tǒng)在負(fù)載下的表現(xiàn)。例如,低CPU使用率不一定意味著接口響應(yīng)時(shí)間就是健康的,而高CPU使用率也不一定導(dǎo)致接口性能不佳。同樣,服務(wù)指標(biāo)如平均響應(yīng)時(shí)間也可能掩蓋實(shí)際問題,比如在壓測中即使只有少量的請求響應(yīng)時(shí)間延長,平均值也可能看起來不變。

基于我的經(jīng)驗(yàn),除了監(jiān)控上述指標(biāo)之外,還應(yīng)該檢查接口的慢請求比例,即超過特定響應(yīng)時(shí)間閾值的請求占總請求的比例。例如,在對微博的動(dòng)態(tài)推送接口進(jìn)行壓測時(shí),我們關(guān)注的是響應(yīng)時(shí)間超過1秒的請求的比例,如果這一比例超過1%,則應(yīng)停止壓測。這是因?yàn)槿绻?9%的請求能在1秒內(nèi)完成,用戶體驗(yàn)通常不會受到太大影響。對大多數(shù)在線服務(wù)而言,保持慢請求比例在1%以下是服務(wù)質(zhì)量的基本標(biāo)準(zhǔn),因此這個(gè)指標(biāo)可以作為一個(gè)有效的壓測性能指標(biāo)。

2. 壓測獲取單機(jī)的最大容量

要確定一個(gè)服務(wù)器集群能處理的最大負(fù)載,我們首先需要知道單個(gè)服務(wù)器能承受的最大負(fù)載,然后這個(gè)數(shù)值乘以集群中服務(wù)器的總數(shù)。獲取單臺服務(wù)器最大負(fù)載的方法通常分為兩種:單機(jī)壓測和集群壓測。單機(jī)壓測可以通過復(fù)現(xiàn)實(shí)際流量的日志或復(fù)制實(shí)時(shí)流量到一個(gè)服務(wù)器上來進(jìn)行。而集群壓測則是通過逐步減少集群中的服務(wù)器數(shù)量來增加單個(gè)服務(wù)器上的負(fù)載,從而測試每臺服務(wù)器的極限。

根據(jù)我的經(jīng)驗(yàn),集群壓測更為可靠,因?yàn)樗谜鎸?shí)的線上流量進(jìn)行測試,可以得到更準(zhǔn)確的單臺服務(wù)器負(fù)載極限。但是,集群壓測可能會對實(shí)際運(yùn)行中的服務(wù)造成影響,因此通常在流量較低的時(shí)段進(jìn)行。此外,為了便于及時(shí)應(yīng)對可能出現(xiàn)的問題,這類壓測一般安排在工作日進(jìn)行。

在集群壓測中,我們會監(jiān)控慢請求的比例,并在這一比例達(dá)到1%時(shí)停止壓測。此時(shí),我們可以用停止壓測時(shí)的每臺服務(wù)器平均每秒查詢數(shù)(QPS)作為單臺服務(wù)器的最大容量指標(biāo)。但是,僅僅使用QPS作為衡量標(biāo)準(zhǔn)并不總是準(zhǔn)確的,因?yàn)樗灰欢芡耆从撤?wù)器的真實(shí)負(fù)載情況。例如,如果有兩個(gè)服務(wù)器,其QPS相同,但一個(gè)主要處理響應(yīng)時(shí)間低于100毫秒的請求,另一個(gè)處理的請求響應(yīng)時(shí)間都超過50毫秒,則后者對服務(wù)器的負(fù)載更重。即使兩臺服務(wù)器的QPS都是100,處理更多慢請求的服務(wù)器可能已經(jīng)無法處理更高的QPS,而另一臺則可能還有余力。

圖片圖片

因此,一種更為精確的方法來衡量單個(gè)服務(wù)器的容量是通過對不同響應(yīng)時(shí)間段的請求賦予加權(quán)值,這種方法稱為區(qū)間加權(quán)。每個(gè)時(shí)間段的請求都有不同的權(quán)重,反映了它們對服務(wù)器負(fù)載的實(shí)際影響:更長的響應(yīng)時(shí)間獲得更高的權(quán)重。例如,響應(yīng)時(shí)間在0到10毫秒之間的請求權(quán)重為1,10到50毫秒為2,50到100毫秒為4,100到200毫秒為8,200到500毫秒為16,超過500毫秒的為32。根據(jù)這種加權(quán)方法,前述兩種情況下服務(wù)器的容量可以計(jì)算為第一種情況的請求(8個(gè)請求×權(quán)重1)+(50個(gè)請求×權(quán)重2)+(30個(gè)請求×權(quán)重4)+(10個(gè)請求×權(quán)重8)+(2個(gè)請求×權(quán)重16)等于340,而第二種情況下的計(jì)算為(2個(gè)請求×權(quán)重2)+(10個(gè)請求×權(quán)重4)+(50個(gè)請求×權(quán)重8)+(20個(gè)請求×權(quán)重16)+(8個(gè)請求×權(quán)重32)等于1020。通過這種方式,我們可以得到在壓測終止時(shí)刻,經(jīng)過區(qū)間加權(quán)計(jì)算得到的單個(gè)服務(wù)器的最大容量。

3. 實(shí)時(shí)獲取集群的運(yùn)行負(fù)荷

為了估算集群的總負(fù)荷,首先,我們需要通過壓力測試確定單個(gè)服務(wù)器的最大處理能力。將這個(gè)數(shù)值乘以集群中服務(wù)器的數(shù)量,就能得出整個(gè)集群的最大處理能力。接下來,為了判斷是否需要對集群進(jìn)行擴(kuò)展,關(guān)鍵在于準(zhǔn)確估算當(dāng)前集群的實(shí)際運(yùn)行負(fù)載。

由于直接計(jì)算每個(gè)服務(wù)器的負(fù)載并將它們加總的方法在大規(guī)模集群(例如超過千臺服務(wù)器)中效率低下,因此采用了一種更高效的方法。這種方法涉及收集每臺服務(wù)器在不同響應(yīng)時(shí)間區(qū)間的請求數(shù)量,然后將這些數(shù)據(jù)發(fā)送到一個(gè)中心處理點(diǎn)進(jìn)行整合。在這個(gè)中心點(diǎn),對同一集群中不同服務(wù)器在各個(gè)響應(yīng)時(shí)間區(qū)間的請求數(shù)據(jù)進(jìn)行匯總,從而得到整個(gè)集群在各個(gè)時(shí)間區(qū)間的請求分布情況。利用這些分布數(shù)據(jù)并結(jié)合區(qū)間加權(quán)的計(jì)算方法,就能有效估算出集群的整體運(yùn)行負(fù)荷。

調(diào)度決策

在容量評估過程中,了解集群的最大容量與實(shí)際運(yùn)行負(fù)載是關(guān)鍵。這兩個(gè)數(shù)據(jù)點(diǎn)可用于形成有效的調(diào)度策略。類似于監(jiān)控水庫的水位,這種策略涉及實(shí)時(shí)監(jiān)測集群的資源利用情況。如果集群的負(fù)載超過了預(yù)設(shè)的警戒線,類似于水庫的水位過高,就需要采取措施來減輕負(fù)擔(dān),比如通過擴(kuò)容或重新分配資源。

相反,如果負(fù)載低于某個(gè)閾值,像是水庫水位過低,那么可以選擇減少資源,以優(yōu)化成本和效率。這樣的方法確保集群負(fù)載始終保持在理想狀態(tài),既不過載也不閑置。通過將集群的最大容量與實(shí)際運(yùn)行負(fù)荷的比值作為“水位線”,可以有效地實(shí)時(shí)監(jiān)控和調(diào)整集群的運(yùn)行狀態(tài)。

圖片圖片

在調(diào)度決策時(shí)候,就可以根據(jù)水位線來做決定。你可以看到下面圖中劃分了兩條線,一條是安全線,一條是致命線。當(dāng)集群的水位線位于致命線以下時(shí),就需要立即擴(kuò)容,在擴(kuò)容一定數(shù)量的機(jī)器后,水位線回到安全線以上并保持一段時(shí)間后,就可以進(jìn)行縮容了。

圖片圖片

  1. 擴(kuò)容策略:在決定增加多少機(jī)器時(shí),通常根據(jù)集群現(xiàn)有規(guī)模的比例來進(jìn)行。例如,可以選擇每次擴(kuò)展總機(jī)器數(shù)的30%,然后重新評估集群的負(fù)載情況。這種按比例擴(kuò)容的方法適用于各種規(guī)模的集群,能確保擴(kuò)容后的負(fù)載仍然保持在安全范圍內(nèi)。
  2. 縮容策略:當(dāng)集群的負(fù)載在安全水平上維持一定時(shí)間后,可以考慮縮容以節(jié)約成本??s容的時(shí)機(jī)和頻率可根據(jù)業(yè)務(wù)特點(diǎn)決定。例如,如果業(yè)務(wù)流量通常在一小時(shí)內(nèi)回落,可以在負(fù)載維持在安全線以上一個(gè)小時(shí)后開始縮容。縮容過程中采取逐步減少的方式,如每隔五分鐘按照一定比例(例如10%、30%、50%)逐步減少機(jī)器,以避免因過快縮容導(dǎo)致負(fù)載突然增加??偨Y(jié):容量評估方面,首先要通過壓測獲取集群的最大容量,并實(shí)時(shí)采集服務(wù)調(diào)用的數(shù)據(jù)以獲取集群的實(shí)時(shí)運(yùn)行負(fù)荷,這樣就可以獲取集群的實(shí)時(shí)水位線。而調(diào)度決策方面,主要是通過水位線與致命線和安全線對比來決定什么時(shí)候該擴(kuò)縮容。而擴(kuò)縮容的數(shù)量也是有講究的,擴(kuò)容的機(jī)器數(shù)一般按照集群機(jī)器數(shù)量的比例來,而縮容一般采取逐步縮容的方式以免縮容太快導(dǎo)致反復(fù)擴(kuò)容。
責(zé)任編輯:武曉燕 來源: 二進(jìn)制跳動(dòng)
相關(guān)推薦

2015-10-28 09:30:19

數(shù)據(jù)中心基礎(chǔ)設(shè)施

2020-07-22 07:00:00

微服務(wù)架構(gòu)

2018-05-15 15:33:07

Leader前端團(tuán)隊(duì)

2010-08-12 17:29:39

網(wǎng)站運(yùn)維容量規(guī)劃

2010-12-07 11:15:04

職業(yè)規(guī)劃

2011-07-18 10:18:53

網(wǎng)絡(luò)容量虛擬化虛擬網(wǎng)絡(luò)

2011-07-11 10:46:36

WCDMA

2011-03-23 10:00:02

LAMPFlickr

2011-07-11 10:56:54

WCDMA

2022-10-21 10:22:30

網(wǎng)絡(luò)網(wǎng)絡(luò)容量網(wǎng)絡(luò)資源 Tech

2019-04-29 09:52:46

容器安全漏洞網(wǎng)絡(luò)安全

2011-01-24 10:26:18

2011-05-26 16:27:24

SEO

2009-12-04 10:00:16

安全領(lǐng)域職業(yè)生涯投資規(guī)劃

2022-09-30 09:16:58

HPACronHPA策略

2021-01-19 09:59:02

招聘管理團(tuán)隊(duì)

2022-06-22 08:02:01

業(yè)務(wù)監(jiān)控Web站點(diǎn)監(jiān)控

2011-04-18 13:20:40

單元測試軟件測試

2013-07-10 09:22:59

云配置云實(shí)踐云應(yīng)用程序接口

2013-11-13 10:21:42

混合云服務(wù)私有數(shù)據(jù)中心公共云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號