seastar在openEuler上的系統移植

2021-10-09 11:26:40 字數 1973 閱讀 9692

seastar:git clone

dpdk: git clone

c-ares: git clone 

fmt:git clone

找到目標原始碼合適版本是編譯嘗試出來的,採用編譯錯誤版本最少的乙個版本。

這裡找到的版本是:seastar-18.08-branch

git branch -a

git checkout seastar-18.08-branch

具體依賴包的版本號:

把依賴包切換到對應的版本,以fmt為例。

#切換到fmt目錄執行如下命令:

git log | grep fd6124c

git checkout fd6124c74da0801f23f9d324559d8b66fb83f533

# 注意 dpdk 要切換到 git checkout local-17.05,才能找 a1774652

# 注意2 子模組更新的通常命令如下:

## git submodule update --init --recursive

git clone

# 編譯ninja

./configure.py --bootstrap

# 拷貝到/usr/bin/或者/usr/local/bin/目錄下

cp ninja /usr/bin/

# . 編譯ninja警告解決

warning: a compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.

## 編譯re2c

tar -xvzf re2c-2.0.3.tar.gz

cd re2c-2.0.3/

./autogen.sh

./configure

make

make install

# 1.1 在re2c中執行:./autogen.sh: 報行47: autoreconf: 未找到命令.執行下面的命令:

yum  -y install autoconf automake libtool

然後在編譯re2c

# re3c編譯安裝成功後,重新新編譯安裝ninja

注意:#### 把ninja拷貝到/usr/bin/目錄中後,執行ninja不正常,設定執行ninja命令的當前目錄中缺少build.ninja檔案,不是安裝異常。0. boost, boost-devel (1.58以上), cmake, ninja

1. gnutls-devel

2. hwloc-devel

3. numactl-devel

4. protobuf protobuf-devel

5. ragel

6. yaml-cpp, yaml-cpp-devel

7. xfsprogs, xfsprogs-devel

8. lksctp-tools lksctp-tools-devel

9. lz4, lz4-devel

10. libpciaccess, libpciaccess-devel

11. libxml2, libxml2-devel

git clone

# 執行make

make && make intall

# 不使用make編譯安裝,使用rpm 打包安裝

參考:

# -j 後面的引數可選

./configure.py --compiler=g++ --static-stdc++

ninja -j 2 release

# seastar通過rpm打包

seastar與go的http效能差異

golang的coroutine好用,但是coroutine本身切換是需要有代價的,主要體現在記憶體棧的上下文切換。之前看過乙個c 的go風格的庫,叫libgo,根據其github主頁的benchmark,協程切換速率是要優於go的。但是這篇文章並非要和libgo比較,由於筆者之前接觸過scylla...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...