在 ARM64 上面運行 TiDB

相比于 Intel 的 x86-64 架構耐朴,ARM 架構雖然作為后來者衡楞,但在服務器領域也開始在不停地攻城拔寨吱雏,很多企業(yè)也開始將自己的服務遷移到 ARM 架構上面,自然瘾境,對于 TiDB 來說歧杏,大家也想將 TiDB 運行到 ARM 上面。因為 AWS 上面直接提供了 ARM 機型迷守,所以我們決定先嘗試在 AWS 的 ARM 上面編譯運行 TiDB犬绒。

編譯

TiDB 主要包含三個組件 - PD,TiKV 和 TiDB兑凿,對于 PD 和 TiDB 來說凯力,使用的是 Go 進行編譯的,所以我們只需要在 ARM 機器上面裝好 Go 的版本就可以了急膀。這里沮协,我使用的是 go1.12.6.linux-arm64 這個版本。

用 Go 編譯 TiDB 和 PD 比較容易卓嫂,中途遇到了一個 TiDB 的編譯問題慷暂,只需要升級下 vendor 就解決了。

編譯 TiKV 就比較麻煩了晨雳,因為我們使用的是 CentOS 系統(tǒng)行瑞,系統(tǒng)用 yum 就能安裝相關的依賴,除了 cmake3 餐禁,裝 cmake 需要做如下處理:

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo rpm -ivh epel-release-latest-7.noarch.rpm
sudo yum install -y epel-release
sudo yum install -y cmake3

sudo ln -s /usr/bin/cmake3 /usr/bin/cmake

當然血久,編譯 RocksDB 還有 Titan 的時候還遇到了一些錯誤,不過多數(shù)就是傳遞編譯參數(shù)的時候需要處理下 ARM64 相關的選項帮非,并不是特別的困難氧吐。

總的來說,編譯并沒有花太多的時間末盔,這里有一個腳本筑舅,大家可以自行去看如何在 ARM64 上面編譯 TiDB。對于運行集群需要的 Grafana 和 Prometheus陨舱,官方都提供了 ARM64 版本翠拣,大家可以直接去 Google。

性能測試

編譯好了 ARM64 的版本游盲,自然就是測試了误墓,這里我使用了 go-ycsb 進行了簡單的測試蛮粮,這里我使用的是 16c32g 的 ARM64 機器,順帶也開了一臺同配置的 x86 作為對比谜慌。

在每臺測試機器上面然想,啟動一個 PD,一個 TiKV畦娄,使用的是默認配置又沾,然后 go-ycsb 使用 100 并發(fā)弊仪,導入 1 百萬數(shù)據(jù)熙卡,操作次數(shù) 1 百萬,batch size 為 0励饵。

結果如下:

x86 OPS ARM OPS
Load 22948.5 14698.6
Workload A Update 14244.5
Read 14224.5
Update 9932.6
Read 9917.8
Workload B Update 4819.0
Read 92302.2
Update 2102.0
Read 39776.8
Workload C Read 113663.1 Read 49262.0

可以看到驳癌,ARM 的機器性能比 x86 的差了很多,需要來優(yōu)化了役听。在網(wǎng)上找了這篇 文章颓鲜,使用了上面的腳本,但發(fā)現(xiàn)沒有什么變化典予。在這個腳本里面甜滨,主要的優(yōu)化就是將網(wǎng)卡中斷的處理綁定到某一個 CPU 上面,然后將 RPS 分散到不同的 CPU瘤袖。對于 16c32g 的機器來說衣摩,這個腳本將網(wǎng)卡中斷的處理綁定到 CPU core 0 和 8 上面,然后把 RPS 分散到所有的 CPU 上面捂敌,但是我通過 mpstat 發(fā)現(xiàn)艾扮,core 0 和 8 幾乎被打滿:

于是我重新調了下,將 RPS 分散到除開 core 0 和 8 的地方:

sudo sh -c 'echo fe > /sys/class/net/eth0/queues/rx-0/rps_cpus'
sudo sh -c 'echo fe00 > /sys/class/net/eth0/queues/rx-1/rps_cpus'

然后 OPS 稍微提升了一點占婉,但 CPU core 0 和 8 仍然是瓶頸泡嘴。而這個瓶頸明顯是網(wǎng)絡處理造成的,直觀的優(yōu)化就是減少網(wǎng)絡消息的處理逆济,于是將 batch size 設為 128酌予,可以發(fā)現(xiàn)在 ARM 上面性能提升很多,譬如對于 workload C奖慌,OPS 能提升到 118270抛虫。但即使這樣,CPU core 0 和 8 還是會成為瓶頸升薯。

對比 ARM莱褒,x86 下面 CPU 的分配明顯的均勻很多:

所以后面我們要考慮的事情就是如何讓 ARM 能更好的處理網(wǎng)絡消息。

總結

上面簡單的說了一下如何在 ARM 上面編譯運行 TiDB涎劈,以及一些調優(yōu)策略广凸。個人認為阅茶,雖然 ARM 在性能上面還趕不上相同配置的 x86,但低功耗谅海,成本這些是一個非常大的優(yōu)勢脸哀,加上很多不可說的原因,個人認為會有越來越多的企業(yè)使用 ARM扭吁,所以這塊也會是趨勢撞蜂。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侥袜,隨后出現(xiàn)的幾起案子蝌诡,更是在濱河造成了極大的恐慌,老刑警劉巖枫吧,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浦旱,死亡現(xiàn)場離奇詭異,居然都是意外死亡九杂,警方通過查閱死者的電腦和手機颁湖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來例隆,“玉大人甥捺,你說我怎么就攤上這事《撇悖” “怎么了镰禾?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹿响。 經(jīng)常有香客問我羡微,道長,這世上最難降的妖魔是什么惶我? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任妈倔,我火速辦了婚禮,結果婚禮上绸贡,老公的妹妹穿的比我還像新娘盯蝴。我一直安慰自己,他們只是感情好听怕,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布捧挺。 她就那樣靜靜地躺著,像睡著了一般尿瞭。 火紅的嫁衣襯著肌膚如雪闽烙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音黑竞,去河邊找鬼捕发。 笑死,一個胖子當著我的面吹牛很魂,可吹牛的內(nèi)容都是我干的扎酷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼遏匆,長吁一口氣:“原來是場噩夢啊……” “哼法挨!你這毒婦竟也來了?” 一聲冷哼從身側響起幅聘,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤凡纳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后喊暖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惫企,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年陵叽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丛版。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巩掺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出页畦,到底是詐尸還是另有隱情胖替,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布豫缨,位于F島的核電站独令,受9級特大地震影響,放射性物質發(fā)生泄漏好芭。R本人自食惡果不足惜燃箭,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舍败。 院中可真熱鬧,春花似錦、人聲如沸协饲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厕诡。三九已至累榜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灵嫌,已是汗流浹背壹罚。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工冀偶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渔嚷。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓进鸠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親形病。 傳聞我的和親對象是個殘疾皇子客年,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

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

  • 摘要: 本文為今年年初 PingCAP 商業(yè)產(chǎn)品團隊負責人劉寅在 TiDB DevCon2018 上分享的 《 T...
    nightwish夜愿閱讀 6,778評論 0 11
  • 一、分布式數(shù)據(jù)庫誕生背景 隨著互聯(lián)網(wǎng)的飛速發(fā)展漠吻,業(yè)務量可能在短短的時間內(nèi)爆發(fā)式地增長量瓜,對應的數(shù)據(jù)量可能快速地從幾百...
    nightwish夜愿閱讀 3,522評論 0 12
  • 從Intel和ARM爭霸戰(zhàn)绍傲,看看做芯片有多難 這幾天中興事件持續(xù)發(fā)酵以來,各種議論紛紛擾擾耍共。但我觸動最大的烫饼,還是碧...
    torvaldsing閱讀 56,611評論 20 131
  • 有福報之人 并不是說今生沒有磨難 而是在磨難中 仍然保持一顆至誠善良
    果圓_45fc閱讀 136評論 0 0
  • 凌晨一點,還沒洗漱昏昏欲睡的我被枕邊的手機震動打斷试读,來電的是徐承杠纵,這么晚,一定發(fā)生了什么钩骇。掙扎起身比藻,電話那頭傳來一...
    一木啊你閱讀 290評論 0 0