Distcc 介绍 distcc是一个非常快且免费的分布式C/C++编译工具,distcc分为两个部分: distcc:distcc是一个类似客户端的程序,不过它的角色是个编译器,可以让C/C++代码在很多网络服务器上进行分布式的编译,就像本地编译一 样,当然比本地编译快很多。 distccd:distccd是一个守护进程,每个网络服务器上都需要安装这个守护进程,用来处理distcc发送过来的各种计算资源。 distccmon-text:distccmon-text是一个监控程序,用来监控编译的分布情况以及网络服务器编译使用情况。 安装了distcc后,所有的网络服务器不需要挂载同样一份文件系统,不需要服务器时间同步,也不要求同样的库文件或者头文件,甚至服务器之间可以允许不 同的处理器和操作系统。 Distcc 简单架构 distcc.png Distcc 安装 在每台空闲的网络服务器上,下载distcc,解压,编译安装如下: ~$ wget http://distcc.samba.org/ftp/distcc/distcc-2.18.3.tar.bz2 ~$ tar -jxf distcc-2.18.3.tar.bz2 ~$ cd distcc-2.18.3 ~$ ./configure && make && sudo make install 在上面安装的distcc服务器上,启动distcc的daemon进程,还可以通过--allow选项指定网关的访问权限。 ~$ sudo /usr/bin/distccd --daemon --allow 10.0.0.0/8 --user cnangel 环境变量设置,在所有的安装distcc的服务器上,执行: ~$ export DISTCC_HOSTS='10.20.137.1 10.20.137.2 10.20.137.3' 当然,为了保持变量值,可以将上述语句放入到$HOME/.bash_profile当中,另外,可以根据自己爱好不同,指定如下变量: ~$ export CC=distcc ~$ export CXX="distcc g++" ~$ alias make="make -j 4" (一般最好为服务器数的1.5倍最佳) 最后,可以尝试编译自己的工程了。 ~$ cd ~/works/myproject; ./configure ; make 小结 具官方统计,在内核Linux2.4.19,单台CPU 1700MHz Pentium IV的机器使用distcc(v0.15)花费了6分45秒,而使用distcc在三台机器上(100Mbps)交叉编译,时间花费2分钟30秒,大概快 2.6倍左右 :)。 一般来说,使用distcc节省了很多的编译时间,对于编译时间长的大工程来说,是一个不错的选择。 (责任编辑:IT) |