- GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源,
- GreatSQL是MySQL的國產分支版本,使用上與MySQL一致,
- 作者:dan
- 文章來源:GreatSQL社區原創
由于MySQL 原始碼編譯單機耗費的時間過于長,最近MySQL 變成8.0.27 以后編譯時間明顯更耗時了,并且辦公室內有多余的空閑機器,
使用分布式編譯,可以在不改變現有環境的情況下,提高編譯效率,
目前比較常用的編譯工具有2個 distcc 與 icecream , 本文使用distcc 進行部署,
部署distcc
分為兩個部分一個是服務端,一個是客戶端
程式分別是distccd 和 distcc
服務端
也是我們空余的設備上
可以基于Docker部署鏡像版本最好和客戶端一致,編譯器版本需求GCC 或者 Clang 一致
moyu22:/opt/distcc$ cat Dockerfile
FROM ubuntu:20.04
RUN apt update && \
apt install -y net-tools distcc gcc g++ clang-12 && \
apt clean && \
echo "#!/bin/bash \n distccd --daemon --no-detach --no-detach --user nobody --allow 0.0.0.0/0 --log-stderr --stats \${OPT}" > ./entrypoint.sh && \
chmod +x ./entrypoint.sh
# Run the generated shell script.
ENTRYPOINT ["./entrypoint.sh"]
打包一個distccd 的鏡像
docker build -f Dockerfile -t distcc .
Docker啟動
docker run -t -d -net=host distccd
也可以使用docker-compose.yml啟動
version: '3'
services:
distcc:
image: "chestnutsj/distcc:latest"
hostname: distcc
container_name: distcc
privileged: true
ports:
- 3632:3632
- 3633:3633
docker-compose -f docker-compoe.yml up -d
默認情況下,將運行所有人都可以運行訪問,如果有需要認證可以在環境變數 OPT 中添加,或者修改默認的埠
客戶端
配置
本地環境 20.04 (),需要編譯專案的機器上,安裝distcc
moyu20: apt install -y distcc
在配置中添加服務器下的 /etc/distcc/hosts ,也可以在 $HOME/.distcc/hosts , 域名可以按照服務器優先級添加
hostname[/LIMIT]
192.168.1.102/32
默認的limit 數量是 4 如果需要更高的效率可以使用更高的數值用
root@dev:/# distcc -j
48
默認limit為 hostname * 4
單個檔案可以使用
distcc g++ t1.cpp
以MySQL原始碼為例
cmake mysql_source \
-DBUILD_TESTING=OFF -DUSE_GTAGS=OFF -DUSE_CTAGS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DFEATURE_SET=community \
-DWITH_INNODB_MEMCACHED=ON -DWITH_ZLIB=bundled -DWITH_LIBEVENT=bundled -DWITH_ZSTD=bundled \
-DENABLE_DOWNLOADS=ON \
-DDOWNLOAD_BOOST=1 \
..
添加指定的編譯
-DCMAKE_C_COMPILER_LAUNCHER=distcc
-DCMAKE_CXX_COMPILER_LAUNCHER=distcc
編譯專案
make -j 32
可以明顯降低編譯時間
監控
編譯期間可以查看distcc 使用情況
distccmon-text 1 間隔時間 1 秒
Enjoy GreatSQL ??
關于 GreatSQL
GreatSQL是由萬里資料庫維護的MySQL分支,專注于提升MGR可靠性及性能,支持InnoDB并行查詢特性,是適用于金融級應用的MySQL分支版本,
相關鏈接: GreatSQL社區 Gitee GitHub Bilibili
GreatSQL社區:
社區博客有獎征稿詳情:https://greatsql.cn/thread-100-1-1.html

技術交流群:
微信:掃碼添加
GreatSQL社區助手微信好友,發送驗證資訊加群,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/551348.html
標籤:其他
上一篇:[SQL Server 2008R2] 有關于判斷表、欄位、存過等元素是否存在相關SQL寫法
下一篇:返回列表
