日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

编译rocksdb源码导致的部署失败

發布時間:2023/12/20 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译rocksdb源码导致的部署失败 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這幾天經歷了一次心酸的歷程,使用了rocksdb第三方庫,編譯器是7.2,rocksdb是20190701從github上取下來的,由于rocksdb自己的CMakeList.txt中使用了-march=native編譯參數,強制使用了編譯代碼服務器的cpu指令集,由于是一個集群,集群中的服務器cpu型號信息不一定都一致,導致集群中部分服務器起不來。引起了大領導的關注,自己一下子提起了精神

事情的經過是這樣的:

我們發布了一款數據庫產品,部署在一個大的集群中,集群中大概有200臺服務器,但是部分服務器節點的進程啟動不起來。在一臺服務器A上編譯打包之后部署到其他的服務器,當時其他的服務器是一個大集群里面有幾十臺服務器,就用B來代表其中的一臺服務器吧,但是B啟動時直接失敗,可以看到的有用信息比較少。

(1)、后來改成了可以調試的版本,優先分析coredump,可以看到,有用的gdb信息比較少,直接在進程啟動時就崩潰了。

(2)、嘗試在main函數入口處加打印來獲取崩潰的模塊的信息,但是在測試過程中main函數中的打印一個也沒有出現,log文件也沒有生成,我個人直接崩潰

(3)、跟其他組的資深同事聊了半天,也沒有得到實質的幫助,此時2天已經過去了,MP催了幾次了

(4)、直接領導也給了一些幫助,讓加一些編譯參數,經過漫長的嘗試測試結果也是失敗了

經過直接領導的指導,應該調整下測試的方式,但是領導也不清楚具體原因,我也懵了,讓自己研究,作為入職公司16個月的資深工程師來說覺得應該好好深入的研究下rocksdb的源碼

(1)、各大網站一頓查找,國內網站沒有給什么幫助,stackflow給了一部分幫助

(2)、開始研究rocksdb源碼中編譯部分,經過一整夜的研究查找資料,最后得出的是rocksdb內部開啟的對cpu指令集的調整參數-march=native,修改rocksdb的編譯參數,編譯下代碼這個過程比較長,這時已經早上6::55,就讓機器自己編譯吧,洗了把臉去外面找點吃的,回來經過2小時的驗證,就是這個問題。由于需要在各種版本上驗證,因此需要考慮各種情況。

(3)、經過測試ok了

?

總結:

? ? ? 本人以前是搞通信的,碩士畢業,最早是做C開發的,現在從事分布式數據庫方面的工作,這次居然使用到了了os + 計算機組成原理+CPU架構等方面的知識,由于以前所學基礎知識扎實,這次對問題的解決得到了幫助。

總結

以上是生活随笔為你收集整理的编译rocksdb源码导致的部署失败的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。