華為云:大數(shù)據(jù)任務執(zhí)行時間優(yōu)化案例分享

來源:華為云社區(qū)
作者:阿剛
時間:2020-08-19
2523
通過大數(shù)據(jù)業(yè)務參數(shù)和服務器基礎調(diào)優(yōu),充分利用TaiShan服務器多核優(yōu)勢,可以提升大數(shù)據(jù)任務執(zhí)行效率。

OTczMTU2NC5qcGVn.jpg

一 問題背景

項目中遇到大數(shù)據(jù)任務執(zhí)行時間比較長,需要進行優(yōu)化,使得大數(shù)據(jù)的任務執(zhí)行時間優(yōu)化至客戶可以接受的時間。

二 原因分析

·業(yè)務場景分析

本場景下的大數(shù)據(jù)任務主要對數(shù)據(jù)進行mapreduce操作,該任務包含兩個子任務,第一個子任務的map(每個map的大小為128M)個數(shù)為4300左右(這些map任務都是分散在不同的服務器上,TaiShan集群有6400+個核可以處理,可以充分利用TaiShan多核優(yōu)勢),map執(zhí)行時間為10分鐘,但是reduce個數(shù)固定寫為200個(即最多有200個核并行處理reduce任務),reduce執(zhí)行時間為1小時30分鐘左右,耗時較長,同時reduce個數(shù)相比map個數(shù)很少,不能充分利用TaiShan多核優(yōu)勢,第二個子任務也是reduce階段耗時較長

·服務器基礎性能分析

在大數(shù)據(jù)任務執(zhí)行時,cpu利用率不高,磁盤io以及網(wǎng)卡IO都沒有瓶頸,不過網(wǎng)卡中斷需要進行綁核,同時磁盤緩存參數(shù)可以進行調(diào)優(yōu)來提升性能

三解決方案

3.1 網(wǎng)卡調(diào)優(yōu)

3.1.1 中斷綁核

中斷親和度描述為可以為特定中斷提供響應的一組CPU,如果應用程序可以通過關聯(lián)到相關的CPU,在相同的CPU上下文中處理接收到的數(shù)據(jù)包,則可以減少等待時間,提高CPU利用率。

因此,我們可以將處理網(wǎng)卡中斷的CPU core設置在網(wǎng)卡所在的NUMA上,從而減少跨NUMA的內(nèi)存訪問所帶來的額外開銷,提升網(wǎng)絡處理性能。

3.2磁盤參數(shù)調(diào)優(yōu)

3.2.1 磁盤讀預取參數(shù)

/sys/block/sdX/queue/read_ahead,這個參數(shù)對順序讀非常有用,意思是,一次提前讀多少內(nèi)容,無論實際需要多少。默認一次讀128kb遠小于要讀的,設置大些對讀大文件非常有用,可以有效的減少讀seek的次數(shù),這個參數(shù)可以使用blockdev–setra來設置,setra設置的是多少個扇區(qū),所以實際的字節(jié)是除以2,比如設置512,實際是讀256個字節(jié).

原服務器值是128kb,設置為4096Kb。

3.2.2 緩存寫入磁盤參數(shù)調(diào)整

/proc/sys/vm/dirty_ratio 從20改成40

這個參數(shù)控制文件系統(tǒng)的文件系統(tǒng)寫緩沖區(qū)的大小,單位是百分比,表示系統(tǒng)內(nèi)存的百分比,表示當寫緩沖使用到系統(tǒng)內(nèi)存多少的時候,開始向磁盤寫出數(shù)據(jù)。增大之會使用更多系統(tǒng)內(nèi)存用于磁盤寫緩沖,也可以極大提高系統(tǒng)的寫性能。

/proc/sys/vm/dirty_background_ratio 從10改為20

這個參數(shù)控制文件系統(tǒng)的pdflush進程,在何時刷新磁盤。單位是百分比,表示系統(tǒng)內(nèi)存的百分比,意思是當寫緩沖使用到系統(tǒng)內(nèi)存多少的時候,pdflush開始向磁盤寫出數(shù)據(jù)。

增大之會使用更多系統(tǒng)內(nèi)存用于磁盤寫緩沖,也可以極大提高系統(tǒng)的寫性能。

/proc/sys/vm/dirty_writeback_centisecs 從500改為800

這個參數(shù)控制內(nèi)核的臟數(shù)據(jù)刷新進程pdflush的運行間隔。單位是1/100秒。缺省數(shù)值是500,也就是5秒

/proc/sys/vm/dirty_expire_centisecs 從3000改為30000

這個參數(shù)聲明Linux內(nèi)核寫緩沖區(qū)里面的數(shù)據(jù)多“舊”了之后,pdflush進程就開始考慮寫到磁盤中去。單位是1/100秒。缺省是30000,也就是30秒的數(shù)據(jù)就算舊了,將會刷新磁盤。

對于特別重載的寫操作來說,這個值適當縮小也是好的,但也不能縮小太多,因為縮小太多也會導致IO提高太快

3.3 應用程序調(diào)優(yōu)

3.3.1 Reduce個數(shù)優(yōu)化

在大數(shù)據(jù)平臺調(diào)整reduce設置,使最大reduce個數(shù)從原來的200改為500,性能提升明顯

3.3.2 Reduce并行copy參數(shù)maprd.reduce.parallel.copies優(yōu)化

Reduce的并發(fā)拷貝數(shù)默認是5,后來調(diào)整至30可以提升reduce的最大并發(fā)拷貝數(shù)

經(jīng)過調(diào)優(yōu),最終大數(shù)據(jù)任務執(zhí)行時間有明顯提升

四 總結(jié)

調(diào)優(yōu)后,TaiShan集群服務器上任務執(zhí)行時間有明顯改善。對相關思路總結(jié)如下:

·分析確認大數(shù)據(jù)任務執(zhí)行時各個階段的耗時,重點分析耗時階段,提升reduce并發(fā),充分利用TaiShan多核優(yōu)勢。

·明確性能瓶頸,并對服務器各個子模塊進行參數(shù)調(diào)優(yōu)。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:華為云社區(qū)
版權說明:本文內(nèi)容來自于華為云社區(qū),本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家