HDFS EC 性能測(cè)試報(bào)告

測(cè)試環(huán)境

一共使用10臺(tái)現(xiàn)網(wǎng)機(jī)器,配置如下妹田,另外,NN鹃共、DN 的 JVM 參數(shù)也和現(xiàn)網(wǎng)保持一致鬼佣。

項(xiàng)目 數(shù)值
CPU 96 核 AMD EPYC 7K62
內(nèi)存 256G
磁盤(pán) 3.6TB X 12塊
網(wǎng)卡 50Gb(由兩塊 25Gb 的物理網(wǎng)卡聚合而成)
集群規(guī)模 1NN + 9DN
NN handler count 256
HDFS block Size 128M
HDFS 默認(rèn)副本數(shù) 3
HDFS 最小副本數(shù) 1
HDFS EC 策略 RS-6-3-1024k
HDFS集群版本 hadoop-3.2.1

測(cè)試方法

設(shè)計(jì)多個(gè)場(chǎng)景,在每個(gè)場(chǎng)景下分別進(jìn)行讀寫(xiě)測(cè)試:

  1. 寫(xiě)測(cè)試霜浴,使用 TestDFSIO 連續(xù)串行寫(xiě)入100個(gè)大小為2GB的文件晶衷,統(tǒng)計(jì)結(jié)果,命令如下:
    HADOOP_CLIENT_OPTS="-Xmx10G -Xms10G" bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -write -nrFiles 100 -size 2GB

  2. 讀測(cè)試,使用 TestDFSIO 連續(xù)串行讀取100個(gè)大小為2GB的文件晌纫,統(tǒng)計(jì)結(jié)果税迷,命令如下:
    HADOOP_CLIENT_OPTS="-Xmx10G -Xms10G" bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -read -nrFiles 100 -size 2GB

注意:

  1. 每次執(zhí)行測(cè)試前,都需要執(zhí)行 sync && echo 3 > /proc/sys/vm/drop_caches 釋放文件系統(tǒng)緩存锹漱,保證多次測(cè)試的獨(dú)立性箭养。
  2. 針對(duì) EC 場(chǎng)景,需要分別統(tǒng)計(jì)使用 Java 編碼庫(kù)和 Intel ISA-L Native 編碼庫(kù)的性能表現(xiàn)哥牍。
  3. 下面測(cè)試結(jié)果中的 “耗時(shí)” 項(xiàng)指的是整個(gè) TestDFSIO 的執(zhí)行耗時(shí)(包括 MR 任務(wù)的提交毕泌、結(jié)果的分析等等),該耗時(shí)僅作參考嗅辣。真正的結(jié)果應(yīng)以 “平均 IO 速率” 這一項(xiàng)為準(zhǔn)撼泛。

使用 ISA-L Native 編碼庫(kù)的測(cè)試結(jié)果

正常寫(xiě)入場(chǎng)景

場(chǎng)景 測(cè)試點(diǎn) 耗時(shí)(s) 平均IO速率(MB/s)
集群內(nèi)部3副本寫(xiě) 部分本地寫(xiě) 307.6 710.18
集群外部3副本寫(xiě) 全部非本地寫(xiě) 298.71 711
集群內(nèi)部EC寫(xiě) 部分本地寫(xiě) 283.63 735.47
集群外部EC寫(xiě) 全部非本地寫(xiě) 276.58 749.65

正常讀取場(chǎng)景

場(chǎng)景 測(cè)試點(diǎn) 耗時(shí)(s) 平均IO速率(MB/s)
集群內(nèi)部3副本讀 構(gòu)造全部本地讀場(chǎng)景 1049.58 195.78
集群內(nèi)部3副本讀 構(gòu)造部分本地讀場(chǎng)景 1155.52 177.98
集群外部3副本讀 全部非本地讀 1188.55 172.94
集群內(nèi)部EC讀 部分本地讀,注意 EC 從原理上注定無(wú)法做到全部本地讀 253.48 819.19
集群外部EC讀 全部非本地讀 247.45 839.99

異常讀取場(chǎng)景

場(chǎng)景 測(cè)試點(diǎn) 耗時(shí)(s) 平均IO速率(MB/s)
掛掉1個(gè) DN(但不 Dead)辩诞,集群外部3副本讀 全部非本地讀 1148.54 178.92
掛掉2個(gè) DN(但不 Dead),集群外部3副本讀 全部非本地讀 1171.56 175.81
掛掉1個(gè) DN(但不 Dead)纺涤,集群外部 EC 讀 全部非本地讀 242.47 857.24
掛掉2個(gè) DN(但不 Dead)译暂,集群外部 EC 讀 全部非本地讀 233.46 888.65
掛掉3個(gè) DN(但不 Dead),集群外部 EC 讀 全部非本地讀撩炊,掛掉3個(gè) DN 是 6+3 EC 所能容忍的極限情況 233.4 889.11

使用純 Java 編碼庫(kù)的測(cè)試結(jié)果

正常寫(xiě)入場(chǎng)景

場(chǎng)景 測(cè)試點(diǎn) 耗時(shí)(s) 平均IO速率(MB/s)
集群內(nèi)部3副本寫(xiě) 部分本地寫(xiě) 307.6 710.18
集群外部3副本寫(xiě) 全部非本地寫(xiě) 298.71 711
集群內(nèi)部 EC 寫(xiě) 部分本地寫(xiě) 884.07 232.31
集群外部 EC 寫(xiě) 全部非本地寫(xiě) 898.12 228.77

正常讀取場(chǎng)景

場(chǎng)景 測(cè)試點(diǎn) 耗時(shí)(s) 平均IO速率(MB/s)
集群內(nèi)部3副本讀 構(gòu)造全部本地讀場(chǎng)景 1049.58 195.78
集群內(nèi)部3副本讀 構(gòu)造部分本地讀場(chǎng)景 1155.52 177.98
集群外部3副本讀 全部非本地讀 1188.55 172.94
集群內(nèi)部 EC 讀 部分本地讀外永,注意 EC 從原理上注定無(wú)法做到全部本地讀 245.46 847.28
集群外部 EC 讀 全部非本地讀 238.48 871.69

異常讀取場(chǎng)景

場(chǎng)景 測(cè)試點(diǎn) 耗時(shí)(s) 平均IO速率(MB/s)
掛掉1個(gè) DN(但不 Dead),集群外部3副本讀 全部非本地讀 1148.54 178.92
掛掉2個(gè) DN(但不 Dead)拧咳,集群外部3副本讀 全部非本地讀 1171.56 175.81
掛掉1個(gè) DN(但不 Dead)伯顶,集群外部 EC 讀 全部非本地讀 301.45 693.09
掛掉2個(gè) DN(但不 Dead),集群外部 EC 讀 全部非本地讀 439.48 481.91
掛掉3個(gè) DN(但不 Dead)骆膝,集群外部 EC 讀 全部非本地讀祭衩,掛掉3個(gè) DN 是 6+3 EC 所能容忍的極限情況 640.54 325.52

客戶端機(jī)器網(wǎng)絡(luò)帶寬使用率(僅測(cè)試使用 ISA-L 加速庫(kù)的情形)

場(chǎng)景 測(cè)試點(diǎn) 客戶端網(wǎng)絡(luò)帶寬使用
集群外部3副本寫(xiě) 全部非本地寫(xiě) 5332.41 Mbps
集群外部 EC 寫(xiě) 全部非本地寫(xiě) 9500.64 Mbps
集群外部3副本讀 全部非本地讀 1431.67 Mbps
集群外部 EC 讀 全部非本地讀 5565.13 Mbps

客戶端進(jìn)程 CPU 使用率(僅測(cè)試使用 ISA-L 加速庫(kù)的情形)

注意:這里的 cpu 使用率使用 top -p $PID 統(tǒng)計(jì)得到,是所有 CPU 核的累加使用率阅签,對(duì)于一個(gè)96核的 CPU 來(lái)說(shuō)掐暮,該值最大可以到 9600%.

場(chǎng)景 測(cè)試點(diǎn) 客戶端進(jìn)程 cpu 使用率
集群外部3副本寫(xiě) 全部非本地寫(xiě) 91.7%
集群外部EC寫(xiě) 全部非本地寫(xiě) 227.5%
集群外部3副本讀 全部非本地讀 14%
集群外部EC讀 全部非本地讀 88%

測(cè)試結(jié)論

  1. ISA-L Native 加速庫(kù)非常關(guān)鍵,如果沒(méi)有這個(gè)加速庫(kù)政钟,EC 寫(xiě)性能僅能達(dá)到副本寫(xiě)的 30% 左右路克。因此,下面所有的結(jié)論都針對(duì)使用 ISA-L 加速庫(kù)的情形养交。
  2. EC 會(huì)顯著增加客戶端機(jī)器的網(wǎng)絡(luò)帶寬和 CPU 消耗精算,以 6+3 為例,相比正常的3副本:
    1. 客戶端寫(xiě)入過(guò)程中碎连,理論上它的帶寬使用會(huì)增長(zhǎng)9倍灰羽,但受限于磁盤(pán)寫(xiě)入速度、交換機(jī)速度等因素,具體增長(zhǎng)程度可能較低谦趣,本次測(cè)試中增長(zhǎng)2倍疲吸。
    2. 客戶端讀取過(guò)程中,理論上它的帶寬使用會(huì)增長(zhǎng)6倍前鹅,同樣摘悴,受限于磁盤(pán)讀取速度、交換機(jī)速度等因素舰绘,具體增加程度可能較低蹂喻,本次測(cè)試中增長(zhǎng)4倍。
    3. 客戶端寫(xiě)入過(guò)程中捂寿,由于并發(fā)寫(xiě)入且需要計(jì)算 EC 校驗(yàn)值口四,其 CPU 使用率會(huì)顯著增長(zhǎng),本次測(cè)試中增長(zhǎng)7倍秦陋。
    4. 客戶端讀取過(guò)程中蔓彩,由于并發(fā)讀取,其 CPU 使用率也會(huì)顯著增長(zhǎng)驳概,本次測(cè)試中增長(zhǎng)6倍赤嚼。
  3. EC 并不會(huì)降低客戶端的 IO 速度,反而顺又,在其它關(guān)鍵要素都滿足的情況下(主要是 CPU 和 網(wǎng)絡(luò))更卒,EC 會(huì)提升 IO 速度,特別是顯著提升讀取速度稚照,以 6+3 為例:
    1. 客戶端寫(xiě)入過(guò)程中蹂空,雖然增加了計(jì)算校驗(yàn)值的步驟,但是在 ISA-L 的幫助下果录,這部分耗時(shí)并不多上枕,完全可以被之后的9倍并發(fā)寫(xiě)找補(bǔ)回來(lái),在本次測(cè)試中弱恒,客戶端 EC 寫(xiě)入速度比3副本提升了 5% 左右姿骏。
    2. 客戶端讀取過(guò)程中,EC 的6倍并發(fā)讀完全壓過(guò)了3副本的單線程讀斤彼,在本次測(cè)試中分瘦,EC 讀速度比3副本本地讀提升了300%,這其中的原因是:?jiǎn)尉€程讀完全受制于磁盤(pán)的極限讀取速度(190MB/s左右)琉苇,反觀6倍并發(fā)讀不受此限制嘲玫。
  4. EC 在正常讀取和修復(fù)讀取兩種情況下,速度差別不大并扇,以 6+3 為例:
    1. 無(wú)論是正常讀取還是修復(fù)讀取胯究,客戶端都是固定的6倍并發(fā)讀6 個(gè) DN拧抖,不會(huì)隨著掛掉的 DN 個(gè)數(shù)變化而變化洽瞬。
    2. 在 ISA-L 幫助下恋日,異常讀取時(shí)的修復(fù)時(shí)間(即計(jì)算出原始數(shù)據(jù)的時(shí)間)很短巫玻。
  5. 以上的結(jié)果都是在網(wǎng)絡(luò)和 CPU 完全足夠的情況下測(cè)得的,特別是網(wǎng)絡(luò),本次測(cè)試中所有機(jī)器都配置了一個(gè)50Gb 的 bond 網(wǎng)卡(由兩張 25Gb 的物理網(wǎng)卡聚合而成),完全夠用顷窒。但在真實(shí)場(chǎng)景下,CPU源哩、網(wǎng)絡(luò)可能達(dá)不到本次測(cè)試的理想條件鞋吉,因此結(jié)果也可能會(huì)有出入。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載励烦,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者谓着。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市坛掠,隨后出現(xiàn)的幾起案子赊锚,更是在濱河造成了極大的恐慌,老刑警劉巖屉栓,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舷蒲,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡系瓢,警方通過(guò)查閱死者的電腦和手機(jī)阿纤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)句灌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)夷陋,“玉大人,你說(shuō)我怎么就攤上這事胰锌∑疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵资昧,是天一觀的道長(zhǎng)酬土。 經(jīng)常有香客問(wèn)我,道長(zhǎng)格带,這世上最難降的妖魔是什么撤缴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮叽唱,結(jié)果婚禮上屈呕,老公的妹妹穿的比我還像新娘。我一直安慰自己棺亭,他們只是感情好虎眨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般嗽桩。 火紅的嫁衣襯著肌膚如雪岳守。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天碌冶,我揣著相機(jī)與錄音湿痢,去河邊找鬼。 笑死种樱,一個(gè)胖子當(dāng)著我的面吹牛蒙袍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫩挤,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼害幅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了岂昭?” 一聲冷哼從身側(cè)響起以现,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎约啊,沒(méi)想到半個(gè)月后邑遏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恰矩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年记盒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片外傅。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纪吮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萎胰,到底是詐尸還是另有隱情碾盟,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布技竟,位于F島的核電站冰肴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏榔组。R本人自食惡果不足惜熙尉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搓扯。 院中可真熱鬧检痰,春花似錦、人聲如沸擅编。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至谭贪,卻和暖如春境钟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俭识。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工慨削, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人套媚。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓缚态,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親堤瘤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玫芦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容