由于MySQL 源码编译单机耗费的时间过于长,最近MySQL 变成8.0.27 以后编译时间明显更耗时了,并且办公室内有多余的空闲机器。
成都创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,成都多线机房,成都多线机房,成都多线服务器托管等服务器托管服务。
使用分布式编译,可以在不改变现有环境的情况下,提高编译效率。
目前比较常用的编译工具有2个 distcc 与 icecream , 本文使用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 秒
当前文章:分布式编译系统的搭建
转载来源:http://www.csdahua.cn/qtweb/news32/544932.html
成都网站优化推广公司_创新互联,为您提供面包屑导航、服务器托管、全网营销推广、网站建设、网站设计、虚拟主机
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网