- 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.04RUN 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:3633docker-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 -j48默认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社区助手
微信好友,发送验证信息加群
。