上圖為單臺(tái)RegionServer的帶寬使用曲線圖(資源使用情況中只列出和本次測(cè)試相關(guān)的資源曲線圖,后面相關(guān)資源使用情況類(lèi)似),本次測(cè)試線程為1000的情況下帶寬基本維持在100M左右,對(duì)于百兆網(wǎng)卡來(lái)說(shuō)基本上已經(jīng)打滿。
結(jié)果分析
1. 吞吐量曲線分析:線程數(shù)在10~500的情況下,隨著線程數(shù)的增加,系統(tǒng)吞吐量會(huì)不斷升高;之后線程數(shù)再增加,系統(tǒng)吞吐量基本上不再變化。結(jié)合圖3帶寬資源使用曲線圖可以看出,當(dāng)線程數(shù)增加到一定程度,系統(tǒng)帶寬資源基本耗盡,系統(tǒng)吞吐量就不再會(huì)增加。 可見(jiàn), HBase寫(xiě)操作是一個(gè)帶寬敏感型操作,當(dāng)帶寬資源bound后,寫(xiě)入吞吐量基本就會(huì)穩(wěn)定。
2. 寫(xiě)入延遲曲線分析:隨著線程數(shù)的不斷增加,寫(xiě)入延遲也會(huì)不斷增大。這是因?yàn)閷?xiě)入線程過(guò)多,導(dǎo)致CPU資源調(diào)度頻繁,單個(gè)線程分配到的CPU資源會(huì)不斷降低;另一方面由于線程之間可能會(huì)存在互斥操作導(dǎo)致線程阻塞;這些因素都會(huì)導(dǎo)致寫(xiě)入延遲不斷增大。
建議
根據(jù)曲線顯示,500線程以內(nèi)的寫(xiě)入延遲并不大于10ms,而此時(shí)吞吐量基本最大,因此如果是單純寫(xiě)入的話500線程寫(xiě)入會(huì)是一個(gè)比較合適的選擇。
單純查詢
測(cè)試參數(shù)
總記錄數(shù)為10億,分為128個(gè)region,均勻分布在4臺(tái)region server上;查詢操作執(zhí)行2千萬(wàn)次;查詢請(qǐng)求分布遵從zipfian分布;
測(cè)試結(jié)果

資源使用情況


圖5為線程數(shù)在1000時(shí)IO利用率曲線圖,圖中IO利用率基本保持在100%,說(shuō)明IO資源已經(jīng)達(dá)到使用上限。圖6為線程數(shù)在1000時(shí)系統(tǒng)負(fù)載曲線圖,圖中l(wèi)oad1曲線表示在最近一分鐘內(nèi)的平均負(fù)載,load5表示最近五分鐘內(nèi)的平均負(fù)載。最近5分鐘的負(fù)責(zé)達(dá)到了50左右,對(duì)于32核系統(tǒng)來(lái)說(shuō),表示此時(shí)系統(tǒng)負(fù)載很高,已經(jīng)遠(yuǎn)遠(yuǎn)超負(fù)荷運(yùn)行。
結(jié)果分析
1. 吞吐量曲線分析:線程數(shù)在10~500的情況下,隨著線程數(shù)的增加,系統(tǒng)吞吐量會(huì)不斷升高;之后線程數(shù)再增加,系統(tǒng)吞吐量基本上不再變化。結(jié)合圖5、圖6系統(tǒng)資源使用曲線圖可以看出,當(dāng)線程數(shù)增加到一定程度,系統(tǒng)IO資源基本達(dá)到上限,系統(tǒng)負(fù)載也特別高。IO利用率達(dá)到100%是因?yàn)榇罅康淖x操作都需要從磁盤(pán)查找數(shù)據(jù),系統(tǒng)負(fù)載很高是因?yàn)镠Base需要對(duì)查找的數(shù)據(jù)進(jìn)行解壓縮操作,解壓縮操作需要耗費(fèi)大量CPU資源。這兩個(gè)因素結(jié)合導(dǎo)致系統(tǒng)吞吐量就不再隨著線程數(shù)增肌而增加。可見(jiàn),HBase讀操作是一個(gè)IO/CPU敏感型操作,當(dāng)IO或者CPU資源bound后,讀取吞吐量基本就會(huì)穩(wěn)定不變。
2. 延遲曲線分析:隨著線程數(shù)的不斷增加,讀取延遲也會(huì)不斷增大。這是因?yàn)樽x取線程過(guò)多,導(dǎo)致CPU資源調(diào)度頻繁,單個(gè)線程分配到的CPU資源會(huì)不斷降低;另一方面由于線程之間可能會(huì)存在互斥操作導(dǎo)致線程阻塞;這些因素都會(huì)導(dǎo)致寫(xiě)入延遲不斷增大。和寫(xiě)入延遲相比,讀取延遲會(huì)更大,是因?yàn)樽x取涉及IO操作,IO本身就是一個(gè)耗時(shí)操作,導(dǎo)致延遲更高。
建議
根據(jù)曲線顯示,500線程以內(nèi)的讀取延遲并不大于20ms,而此時(shí)吞吐量基本最大,因此如果是單純讀取的話500線程讀取會(huì)是一個(gè)比較合適的選擇。
Range 掃描查詢
測(cè)試參數(shù)
總記錄數(shù)為10億,分為128個(gè)region,均勻分布在4臺(tái)region server上;scan操作執(zhí)行一千兩百萬(wàn)次,請(qǐng)求分布遵從zipfian分布; scan最大長(zhǎng)度為100條記錄, scan長(zhǎng)度隨機(jī)分布且遵從uniform分布;
測(cè)試結(jié)果

資源使用情況


圖8為線程數(shù)在1000時(shí)IO利用率曲線圖,圖中IO利用率基本保持在100%,說(shuō)明IO資源已經(jīng)達(dá)到使用上限。圖9為線程數(shù)在1000時(shí)帶寬資源使用曲線圖,圖中帶寬資源基本也已經(jīng)達(dá)到上限。