分布式编译distcc

工程代码编译速度太慢,决定采用分布式编译来提高编译速度.

distcc ,请参考https://www.distcc.org/

安装

我用的distcc的版本是distcc-3.2rc1, 下载源码,安装步骤如下:

./autogen.sh

./configure --disable-Werror --prefix=/usr/local/distcc-3.2rc1

make

make install

配置

1. 客户端

1.1 检查server上的3632端口是否可用:

a. python -m telnetlib 10.58.17.203 3632

b. nc -zv 10.58.17.203 3632

1.2 export环境变量

export DISTCC_HOSTS="10.58.17.203/64,lzo,cpp"

export DISTCC_LOG=/home/ricky/distcc.log

export DISTCC_VERBOSE=1

64表示:客户端发送到203这台机器的任务最多为64个,与cpu的core数量有关系;

lzo: 允许LZO压缩

备注: 在**/etc/environment** 文件中可以添加这些变量,开机后这些变量便可以自动导出

DISTCC_HOSTS="10.58.17.203/64,lzo,cpp"

DISTCC_LOG=/home/ricky/distcc.log

DISTCC_VERBOSE=1

1.3 pump

/usr/local/distcc-3.2rc1/bin/pump make -j16

2. 服务器

2.1 服务器应该开放3632端口,当然关闭防火墙更加直接了当:

sudo systemctl stop firewalld

sudo systemctl status firewalld

2.2 export环境变量

export DISTCC_HOSTS="10.58.17.203/64,lzo,cpp"

export DISTCC_LOG=/home/ricky/distcc.log

2.3 daemon

2.3.1 手动运行daemon

/usr/local/distcc/bin/distccd --daemon -a 10.58.17.201 --user nobody --log-level debug

2.3.2 创建 Systemd 配置文件, distccd 便可以开机后自动运行

/etc/systemd/system/ 目录中创建一个以 .service 结尾的文件,比如 distccd.service。使用编辑器打开,添加如下内容:

[Unit]
Description=Distccd Distributed Compiler Daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/distcc/bin/distccd --daemon -a 10.58.17.201 --user nobody
Restart=always

[Install]
WantedBy=default.target

重新加载 Systemd 配置:

保存并退出编辑器后,使用以下命令重新加载 Systemd 配置:sudo systemctl daemon-reload

启用自动启动:

sudo systemctl enable distccd.service

这会将 Distccd 服务添加到启动时要加载的服务列表中。

启动 Distccd 服务: 你可以手动启动服务:sudo systemctl start distccd.service
检查状态: 你可以使用以下命令检查服务的状态:sudo systemctl status distccd.service

3. 问题定位

  1. distcc clent 的 /tmp 目录下会存在distcc_server_stderr_e7eb7455.txt, 这个文件里会存在错误信息;

  2. 如果ccache 和 distcc 都要开启的话,执行命令的 ccache 一定要位于distcc 之前:

/usr/local/bin/ccache /usr/local/distcc-3.2rc1/bin/distcc

  1. 查看distcc man 手册

cd /usr/local/distcc-3.2rc1/share/man/man1/

man ./distcc.1.gz

相关推荐
里欧跑得慢3 小时前
Flutter 三方库 ethereum 鸿蒙分布式区块链数字资产上链钱包适配突破:接通 JSON-RPC 加密管线深入打通智能合约闭环实现高价值数字加密交互-适配鸿蒙 HarmonyOS ohos
分布式·flutter·harmonyos
2501_933329556 小时前
技术深度拆解:Infoseek舆情系统的全链路架构与核心实现
开发语言·人工智能·分布式·架构
辣机小司8 小时前
【生产级 Kafka (KRaft) 双中心容灾演练:MirrorMaker 2.0 (MM2) 核心参数配置与回切踩坑指南】
分布式·kafka·集群同步·kafka双集群
softshow102610 小时前
SpringCloud Redis与分布式
redis·分布式·spring cloud
学渣y10 小时前
git分布式版本控制系统
分布式·git·elasticsearch
天天进步201511 小时前
源码级优化:Graphiti 的并发处理与分布式记忆存储架构
人工智能·分布式·架构
BPM_宏天低代码13 小时前
宏天CRM系统的消息中心:基于RabbitMQ的实践
分布式·rabbitmq
2501_9333295514 小时前
企业级舆情监测系统技术选型指南:Infoseek AI中台架构解析与实践评估
人工智能·分布式·重构·架构
chunyublog14 小时前
HBase 2.4.18 分布式集群搭建教程(适配 Hadoop 3.3.4 + ZooKeeper 3.5.6)
hadoop·分布式·hbase
乐维_lwops1 天前
Zabbix分布式监控体系架构设计与实战优化
分布式·zabbix