日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
分布式編譯系統(tǒng)的搭建

由于MySQL 源碼編譯單機耗費的時間過于長,最近MySQL 變成8.0.27 以后編譯時間明顯更耗時了,并且辦公室內有多余的空閑機器。

成都創(chuàng)新互聯(lián)公司專業(yè)IDC數(shù)據(jù)服務器托管提供商,專業(yè)提供成都服務器托管,服務器租用,成都多線機房,成都多線機房,成都多線服務器托管等服務器托管服務。

使用分布式編譯,可以在不改變現(xiàn)有環(huán)境的情況下,提高編譯效率。

目前比較常用的編譯工具有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

默認情況下,將運行所有人都可以運行訪問,如果有需要認證可以在環(huán)境變量 OPT 中添加,或者修改默認的端口

客戶端

配置

本地環(huán)境 20.04 (),需要編譯項目的機器上,安裝distcc

moyu20: apt install -y distcc

在配置中添加服務器下的 /etc/distcc/hosts  ,也可以在 $HOME/.distcc/hosts , 域名可以按照服務器優(yōu)先級添加

hostname[/LIMIT]
192.168.1.102/32

默認的limit 數(shù)量是 4 如果需要更高的效率可以使用更高的數(shù)值用

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

可以明顯降低編譯時間

監(jiān)控

編譯期間可以查看distcc 使用情況

distccmon-text 1 間隔時間 1 秒


當前文章:分布式編譯系統(tǒng)的搭建
當前鏈接:http://www.dlmjj.cn/article/dhoicgs.html