自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式編譯系統(tǒng)的搭建

開發(fā) 前端
目前比較常用的編譯工具有2個(gè) distcc 與 icecream , 本文使用distcc 進(jìn)行部署。

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

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

目前比較常用的編譯工具有2個(gè) distcc 與 icecream , 本文使用distcc 進(jìn)行部署。

部署distcc

分為兩個(gè)部分一個(gè)是服務(wù)端,一個(gè)是客戶端

程序分別是distccd 和 distcc

服務(wù)端

也是我們空余的設(shè)備上

可以基于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"]

打包一個(gè)distccd 的鏡像

docker build -f Dockerfile -t distcc .

Docker啟動(dòng)

docker run -t -d -net=host distccd

也可以使用docker-compose.yml啟動(dòng)

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

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

客戶端

配置

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

moyu20: apt install -y distcc

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

hostname[/LIMIT]
192.168.1.102/32

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

root@dev:/# distcc -j
48
默認(rèn)limit為 hostname * 4

單個(gè)文件可以使用

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

編譯項(xiàng)目

make -j 32

可以明顯降低編譯時(shí)間

監(jiān)控

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

distccmon-text 1 間隔時(shí)間 1 秒

責(zé)任編輯:武曉燕 來源: GreatSQL社區(qū)
相關(guān)推薦

2023-05-12 08:23:03

分布式系統(tǒng)網(wǎng)絡(luò)

2023-02-11 00:04:17

分布式系統(tǒng)安全

2012-02-23 09:59:05

Hadoop分布式應(yīng)用

2023-05-29 14:07:00

Zuul網(wǎng)關(guān)系統(tǒng)

2017-10-27 08:40:44

分布式存儲(chǔ)剪枝系統(tǒng)

2023-10-26 18:10:43

分布式并行技術(shù)系統(tǒng)

2017-08-10 10:17:32

Hadoop分布式搭建

2017-10-17 08:33:31

存儲(chǔ)系統(tǒng)分布式

2019-07-17 22:23:01

分布式系統(tǒng)負(fù)載均衡架構(gòu)

2017-12-05 09:43:42

分布式系統(tǒng)核心

2019-06-19 15:40:06

分布式鎖RedisJava

2023-10-08 10:49:16

搜索系統(tǒng)分布式系統(tǒng)

2019-08-12 16:07:32

Web系統(tǒng)集群

2018-12-14 10:06:22

緩存分布式系統(tǒng)

2011-04-18 14:43:23

分布式測(cè)試分布式測(cè)試

2010-03-24 17:07:52

無線分布式系統(tǒng)

2019-08-05 07:58:01

分布式架構(gòu)系統(tǒng)

2010-11-01 05:50:46

分布式文件系統(tǒng)

2023-02-23 07:55:41

2017-12-20 16:15:30

分布式系統(tǒng)架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)