什么是分布式的“三圍”?你知道嗎?
在分布式系統(tǒng)中,幾個(gè)關(guān)鍵的衡量指標(biāo)包括性能、資源、可用性和可擴(kuò)展性。這些指標(biāo)至關(guān)重要,因?yàn)樾阅苤苯佑绊懴到y(tǒng)的響應(yīng)速度和吞吐量;資源衡量系統(tǒng)對(duì)計(jì)算和存儲(chǔ)資源的有效利用;可用性確保系統(tǒng)在故障時(shí)仍能正常運(yùn)行,以滿足用戶需求;而可擴(kuò)展性則關(guān)系到系統(tǒng)在面對(duì)增加的負(fù)載時(shí)的適應(yīng)能力。這些指標(biāo)共同決定了分布式系統(tǒng)的整體效率和可靠性。
分布式系統(tǒng)的指標(biāo)
分布式技術(shù)的起源表明,分布式系統(tǒng)的出現(xiàn)旨在通過(guò)廉價(jià)的普通機(jī)器來(lái)解決單個(gè)計(jì)算機(jī)在處理復(fù)雜、大規(guī)模數(shù)據(jù)和任務(wù)時(shí)所面臨的性能瓶頸、資源不足以及可用性和可擴(kuò)展性問(wèn)題。換句話說(shuō),分布式系統(tǒng)的目標(biāo)是利用更多的機(jī)器來(lái)處理更大量的數(shù)據(jù)和更復(fù)雜的任務(wù)。因此,性能、資源、可用性和可擴(kuò)展性成為了分布式系統(tǒng)的重要指標(biāo),可以說(shuō)它們構(gòu)成了分布式系統(tǒng)的核心要素。
圖片
性能(Performance)
性能指標(biāo)主要用于衡量系統(tǒng)處理各種任務(wù)的能力,無(wú)論是分布式系統(tǒng)還是單機(jī)系統(tǒng),性能要求都是重要的考量。由于不同系統(tǒng)和服務(wù)的目標(biāo)各異,因此關(guān)注的性能指標(biāo)也會(huì)有所不同,甚至可能相互矛盾。常見(jiàn)的性能指標(biāo)包括吞吐量、響應(yīng)時(shí)間和完成時(shí)間。
吞吐量指的是系統(tǒng)在一定時(shí)間內(nèi)可以處理的任務(wù)數(shù)量,是評(píng)估系統(tǒng)性能的直接體現(xiàn)。常見(jiàn)的吞吐量指標(biāo)有:
- QPS(Queries Per Second):每秒查詢數(shù),用于衡量系統(tǒng)每秒能處理的查詢數(shù)量。
- TPS(Transactions Per Second):每秒事務(wù)數(shù),用于衡量系統(tǒng)每秒能處理的事務(wù)數(shù)量。
- BPS(Bits Per Second):每秒比特?cái)?shù),用于衡量系統(tǒng)每秒處理的數(shù)據(jù)量。
響應(yīng)時(shí)間是指系統(tǒng)對(duì)請(qǐng)求或輸入的響應(yīng)所需時(shí)間,它直接影響用戶體驗(yàn),尤其對(duì)時(shí)延敏感的業(yè)務(wù)尤為重要。
完成時(shí)間則指系統(tǒng)真正完成一個(gè)請(qǐng)求或處理所需的總時(shí)間。任務(wù)并行(或任務(wù)分布式)模式的一個(gè)主要目的就是縮短整個(gè)任務(wù)的完成時(shí)間,尤其是在需要處理海量數(shù)據(jù)或大規(guī)模任務(wù)時(shí),用戶對(duì)完成時(shí)間的感受尤為顯著。
資源占用(Resource Usage)
資源占用指的是系統(tǒng)正常運(yùn)行所需的硬件資源,如CPU、內(nèi)存和硬盤等。當(dāng)系統(tǒng)在沒(méi)有任何負(fù)載時(shí)的資源占用被稱為空載資源占用,這反映了系統(tǒng)自身的資源使用情況。對(duì)于同樣的功能,空載資源占用越少,說(shuō)明系統(tǒng)設(shè)計(jì)越優(yōu)秀,更容易受到用戶的青睞。另一方面,當(dāng)系統(tǒng)在滿負(fù)載狀態(tài)下的資源占用稱為滿載資源占用,它展示了系統(tǒng)全力運(yùn)行時(shí)所需的資源量,體現(xiàn)了系統(tǒng)的處理能力。在相同硬件配置下,運(yùn)行的業(yè)務(wù)越多而資源占用越少,表明該系統(tǒng)的設(shè)計(jì)更加出色。
可用性(Availability)
可用性通常指的是系統(tǒng)在面對(duì)各種異常時(shí)能否正確提供服務(wù)的能力,是分布式系統(tǒng)的重要指標(biāo)之一,反映了系統(tǒng)的魯棒性和容錯(cuò)能力??捎眯钥梢酝ㄟ^(guò)系統(tǒng)停止服務(wù)的時(shí)間與總運(yùn)行時(shí)間的比值來(lái)衡量。例如,如果一個(gè)網(wǎng)站的總運(yùn)行時(shí)間為24小時(shí),而在這段時(shí)間內(nèi)出現(xiàn)故障導(dǎo)致不可用的時(shí)間為4小時(shí),則其可用性為4/24=0.167,即約16.7%的時(shí)間不可用,或者83.3%的時(shí)間可用。此外,系統(tǒng)的可用性還可以通過(guò)某個(gè)功能的失敗次數(shù)與總請(qǐng)求次數(shù)的比值來(lái)衡量,比如在1000次網(wǎng)站請(qǐng)求中有10次失敗,那么可用性為99%。
可擴(kuò)展性(Scalability)
可擴(kuò)展性指的是分布式系統(tǒng)通過(guò)增加集群機(jī)器規(guī)模來(lái)提升系統(tǒng)性能(如吞吐量、響應(yīng)時(shí)間和完成時(shí)間)、存儲(chǔ)容量和計(jì)算能力的特性,這也是分布式系統(tǒng)的一大優(yōu)勢(shì)。其設(shè)計(jì)初衷在于利用多機(jī)集群的能力來(lái)解決單機(jī)無(wú)法應(yīng)對(duì)的問(wèn)題。完成某一具體任務(wù)所需的機(jī)器數(shù)量,即集群規(guī)模,取決于單個(gè)機(jī)器的性能和任務(wù)需求。
隨著業(yè)務(wù)需求的增加,除了通過(guò)升級(jí)單機(jī)的性能進(jìn)行垂直(縱向)擴(kuò)展外,另一種方式是通過(guò)增加機(jī)器數(shù)量進(jìn)行水平(橫向)擴(kuò)展。垂直擴(kuò)展指的是增強(qiáng)單機(jī)的硬件能力,如增加CPU或內(nèi)存,而水平擴(kuò)展則是增加計(jì)算機(jī)的數(shù)量。理想的分布式系統(tǒng)追求“線性擴(kuò)展性”,即某一指標(biāo)能夠隨著集群中機(jī)器數(shù)量的增加而呈線性增長(zhǎng)。
衡量系統(tǒng)可擴(kuò)展性的常見(jiàn)指標(biāo)是加速比(Speedup),即系統(tǒng)擴(kuò)展后相對(duì)于擴(kuò)展前的性能提升。如果擴(kuò)展的目標(biāo)是提高系統(tǒng)的吞吐量,可以用擴(kuò)展后的吞吐量與擴(kuò)展前的吞吐量之比來(lái)衡量。如果目標(biāo)是縮短完成時(shí)間,則可以用擴(kuò)展前的完成時(shí)間與擴(kuò)展后的完成時(shí)間之比進(jìn)行評(píng)估。