[[ Распределенная компиляция в Gentoo ]]

Gentoo

Распределенная компиляция в Gentoo

Распределенная компиляция с помощью программы distcc

Настройка сервера

Установка

emerge distcc -av

Настройка

Сейчас главная опция allow - компьютеры которым разрешено подключаться

/etc/conf.d/distccd

...

DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24"
Запуск демона

/etc/init.d/distccd start

Настройка клиента

Установка

emerge distcc -av

Настройка

Укажем адреса серверов которые будем использовать. Я не собираюсь использовать ресурсы локальной машины, поэтому удалю localhost и соответственно не буду загружать демон.

/etc/distcc/hosts

#ip:[port][/n]
# n - максимальное количество задач, которые можно послать машине в любой момент времени
# 127.0.0.1
192.168.0.1

Параметры компиляции

/etc/make.conf

#Вместо N укажите подходящее число для вашего случая. 
#Как правило это общее кол-во процессоров на ВСЕХ компьютерах, умноженное на 2 и плюс 1
MAKEOPTS="-jN"
#Добавим distcc в переменную FEATURES
FEATURES="distcc"
# Установим директорию для временных файлов distcc
DISTCC_DIR="/tmp/.distcc"

Мониторинг

На первый взгляд так и не поймешь работает или нет. Вместе с distcc есть монитор консольный и gui. Работает он странно, запускается на клиенте

DISTCC_DIR="/tmp/.distcc" distccmon-text 0.1

Обновляется с интервалом 0.1сек , но похоже что он показывает только то, что успел ухватить в этот момент времени.

Включить отладочную информацию на клиенте - очень непонятно

/etc/make.conf

DISTCC_VERBOSE="1"
DISTCC_LOG="/tmp/distcc.log"

Лучше наблюдать лог на сервере, и сразу понятнее будет

/etc/conf.d/distccd

...

DISTCCD_OPTS="${DISTCCD_OPTS} --log-level info --log-file=/tmp/distccd.log"

tail -f /tmp/distccd.log
distccd[6838] (dcc_job_summary) client: 192.168.0.103:46379 COMPILE_OK exit:0 sig:0 core:0 ret:0 time:87ms x86_64-pc-linux-gnu-gcc ls-kernel.c
distccd[6839] (dcc_job_summary) client: 192.168.0.103:46380 COMPILE_OK exit:0 sig:0 core:0 ret:0 time:91ms x86_64-pc-linux-gnu-gcc ls-tree.c
distccd[6841] (dcc_job_summary) client: 192.168.0.103:46381 COMPILE_OK exit:0 sig:0 core:0 ret:0 time:85ms x86_64-pc-linux-gnu-gcc ls-map.c

Обсуждение

Тюкалов Александр, 2017/12/31 06:34

поправьте опечатку """ #ip:[potr][/n] """ велика вероятность что вы имели в виду [port]

Aleksey, 2018/01/24 12:36

поправил

Ваш комментарий. Вики-синтаксис разрешён:
180 -4 =
 
howto/gentoo/gentoo_distcc.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki