1 (17.05.2010 09:29:49 отредактировано kurilshik)

Перыл кучу инфы по настройке distcc, но не могу понять работает он у меня или нет.
Есть две машины основная 192,168,3,93 и помощник 192,168,3,95. на обоих установлен distcc.
demon distccd запускается при загрузке.
вот make.conf (на обоих машинах):

CFLAGS="-march=native -mtune=native -pipe -fomit-frame-pointer -O2"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
LINGUAS="en ru"
#GENTOO_MIRRORS="ftp://195.14.50.21/pub/Linux/gentoo"
MAKEOTPS="-j3"
#--------processor-----------
USE="-3dnow mmx sse sse2 sse3 ssse3 usb"
#----------apl--------------
USE="$USE mpeg opengl png reiserfs samba"
#--------off----------------
USE="$USE -X -kde -ipv6 -mysql -wifi -plasma -gnom -gtk -java"
VIDEO_CARDS="vmware svga"
FEATURES="ccache distcc"
DISTSCC_DIR="/var/tmp/.distcc"
DISTCC_VERBOSE="1"
DISTCC_HOSTS="192.168.3.93 192.168.3.95"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="1G"
CCACHE_PREFIX="distcc"
INPUT_DEVICES="keyboard mouse"

Вот настройки distccd демона /etc/init.d/distccd:

# /etc/conf.d/distccd: config file for /etc/init.d/distccd

DISTCCD_OPTS=""
DISTCCD_EXEC="/usr/bin/distccd"
DISTCCD_PIDFILE="/var/run/distccd/distccd.pid"
DISTCCD_OPTS="${DISTCCD_OPTS} --port 3632"
DISTCCD_OPTS="${DISTCCD_OPTS} --log-level debug"
DISRCCD_OPTS="${DISTCCD_OPTS} --log-file /var/log/distccd.log"
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.3.0/24"
#DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.95"
DISTCCD_OPTS="${DISTCCD_OPTS} -N 15"


Время компиляции не изменилось (пробывал на примере: emerge -vab syslog-ng, измерял: genlop -t syslog-ng)
distccmon-text - ничего не пишет, только чистый экран.
Лога distcc нет ( в /etc/conf.d/distccd указал DISTCC_LOG=.../var/log/.distсс )
Подскажите где копать...
поиск "distcc" по Вашему форуму выдает ошибку
"501 - Not Implemented
Traffic inspector HTTP/FTP/Proxy server (1.1.5.210)
Server - srvinet /  17.05.10 15:25:42"
поэтому незнаю есть ли подобные темы или нет.

2 (17.05.2010 18:30:49 отредактировано Macumazan)

На сервере .95:
Проверьте в конфигах пути к файлу /var/log/distccd.log.  Если самого файла нет то создайте его с указанием владельца distcc, потом запустите сам сервис.

На .93

#distcc-config --set-hosts "192.168.3.95"

Во всех make.conf надо отказаться от значения native если CPU разные.

DISTCC_HOSTS="192.168.3.93 192.168.3.95"
CCACHE_PREFIX="distcc"
Про эти не знаю параметры, не использовал.
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.95"  - это лучше оставить

Запускаете сборку и мониторите  /var/log/distccd.log на наличие логов. Лучше их выложить сюда.

3 (18.05.2010 08:21:16 отредактировано kurilshik)

машины одинаковые
Спасибо лог заработал, ( Помимо неправильного владельца обнаружил ошибку в  первом слове  'DISRCCD_OPTS="${DISTCCD_OPTS} --log-file /var/log/distccd.log")'
при запуске демона пишет:

* Starting distccd ...
distccd[38381 (dcc_discard_root) discarded root privileges, changed to uid=248 gid=2
...


лоg distccd на основной машине:

distccd[3038] (main) chdir to /tmp
distccd[3038] (dcc_setup_daemon_path) daemon's PATH is /usr/i686-pc-linux-gnu/gcc-bin/4.3.4:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin
distccd[3038] (dcc_listen_by_addr) listening on 0.0.0.0:3632
distccd[3038] (dcc_defer_accept) TCP_DEFER_ACCEPT turned on
distccd[3038] (dcc_standalone_server) 2 CPUs online on this server
distccd[3038] (dcc_standalone_server) allowing up to 4 active jobs
distccd[3038] (dcc_ignore_sighup) ignoring SIGHUP
distccd[3039] (dcc_detach) setsid to session 3039
distccd[3039] (dcc_log_daemon_started) preforking daemon started (3.1 i686-pc-linux-gnu, built May  6 2010 13:09:22)
distccd[3039] (dcc_create_kids) up to 1 children
distccd[3039] (dcc_create_kids) up to 2 children
distccd[3039] (dcc_create_kids) up to 3 children
distccd[3039] (dcc_create_kids) up to 4 children

на вспомогательной такойже.
причем этот лог до 'emerge -vab syslog-ng',  после сборки ничего не добавилось.
во время сборки emerge -vab syslog-ng были замечены мелькавшие на консоли строчки начинавшиеся на distccd, но что там было, не разобрал.

время сборки не изменилось:
# genlop -t syslog-ng
Torn Mhy 13 16:11:39 2MB >>> app ad*ln/»y*la*-**-3.#.4merge time: 32 seconds.
Thu May 13 16:13:24 2818 >>> app-admin/syslog-ng-3.8.4 merge time: 32 seconds.
Thu May 13 16:16:81 2818 >>> app admin/syslog ng-3.8.4 merge time: 36 seconds.
Thu May 13 16:17:43 2818 >>> app admin/syslog ng-3.8.4 merge time: 43 seconds.
Sat Mmy 15 14:17:13 2MB >>> app ad*ln/»y*la*-**-3.@.4merge time: 54 seconds.
Sat May 15 14:18:13 2B1B >>> app ad*ln/»yalo*-a*-3.@.4merge time: 51 seconds.
Moa May 17 B3:43:27 2B1B >>> app ad*ln/»yalo*-a*-3.@.4merge time: 56 seconds.
Mbn May 17 18:84:18 2818 >>> app-admin/syslog-ng-3.8.4 merge time: 51 seconds.
Moa May 17 19:16:47 2B1B >>> app ad*ln/»yalo*-a*-3.@.4merge time: 56 seconds.
Mbn May 17 18:18:31 2818 >>> app admin/syslog-ng-3.8.4 merge time: 54 seconds.
Moa May 17 11:21:24 2#1# >>> app ad*ln/»yola*-a*-3.@.4merge time: 59 seconds.
Too May IB 12:5@:#1 2*18 >>> appad*in/»u*Io;-*#-3.#.4merge time: 56 seconds.
Due May 18 12:51:84 2818 >>> app admin/syslog-ng-3.8.4 merge time: 52 seconds.
Может genlop не то средство которым можно судить о времени компиляции?
Монитор "distccmon-text -1" на обоих машинах молчит - черный экран ( вспомогательную машину смотрю через ssh).
...
...

сегодня собираю doomsday и в логах distccd на обоих машинах появились результаты.
(наверно syslog-ng слишком маленькое приложение и distcc не использовался)
беспокоят строчки error и failed (1 и 4 снизу):
...
distccd[21518] (dcc_increment_safeguard) setting safeguard: _DISTCC_SAFEGUARD=1
distccd[3172] (dcc_collect_child) cc child 21518 terminated with status 0x6f00
distccd[3172] (dcc_collect_child) cc times: user 0.000000s, system 0.000000s, 0 minflt, 0 majflt
distccd[3172] (dcc_x_token_int) send DONE00000001
distccd[3172] (dcc_x_token_int) send STAT00006f00
distccd[3172] (dcc_x_file) send 157 byte file /tmp/distcc_32481195.stderr with token SERR and compression 69
distccd[3172] (dcc_x_token_int) send SERR0000009d
distccd[3172] (dcc_x_file) send 0 byte file /tmp/distcc_32601195.stdout with token SOUT and compression 69
distccd[3172] (dcc_x_token_int) send SOUT00000000
distccd[3172] (dcc_x_token_int) send DOTO00000000
distccd[3172] /usr/lib/distcc/bin/i686-pc-linux-gnu-gcc /var/tmp/ccache/genperf.tmp.gentoolocal.21511.i on localhost failed with exit code 111 (?)
distccd[3172] job complete
distccd[3172] (dcc_cleanup_tempfiles_inner) deleted 5 temporary files
distccd[3172] (dcc_job_summary) client: 192.168.3.93:51681 COMPILE_ERROR exit:111 sig:0 core:0 ret:0 time:4ms /usr/lib/distcc/bin/i686-pc-linux-gnu-gcc /var/tmp/ccache/genperf.tmp.gentoolocal.21511.i (?)

Монитор "distccmon-text -1" на обоих машинах молчит - черный экран

4

kurilshik пишет:

lоg distccd на основной машине:

Я никогда не делал disdtcc через localhost, поэтому ничего сказать не могу.

kurilshik пишет:

Может genlop не то средство которым можно судить о времени компиляции?
Монитор "distccmon-text -1" на обоих машинах молчит - черный экран ( вспомогательную машину смотрю через ssh).

Если пакет собирается впервые, genlop просто засекает время сборки, но не предсказывает. Монитор у меня тоже не работает, я даже не разбирался.

kurilshik пишет:

беспокоят строчки error и failed (1 и 4 снизу):

А какой вывод ls -al  /usr/lib/distcc/ на .95?

5 (19.05.2010 05:17:03 отредактировано kurilshik)

вот такой:

gentoolocal2 log # Is -al /usr/lib/distcc/
total 13
drwxr-xr-x 3 root root   72 May 6 12:48
drwxr-xr-x 23 root root 13544 May 18 17:25
drwxr xr-x 2 root root  264 May 6 13:89 bin

сегодня пробывал пересобирать вчерашние проги - в логах ничего не пишется.
Если на .93 написать
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.95"

то в логе distccd появляется такие строчки:

distccd[3839]   (dcc_listen_by_addr) ERROR: bind of 192.168.3.95:8888 failed: Cannot assign requested address
distccd[3839]   (dccjexit) exit: code 182; self: 8.888999 user 8.888998 sys; children: 8.880000 user 8 800008 sys


и демон вообще не запускается если

DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.93 
то не ругается и в логе пишет что слушает 192.168.3.93:3632
а если закоментировать эту строку то пишет что слушает 0.0.0.0:3632
как должно быть?

пересобираю glibc, emerge на экране пишет периодически вот такое:

dlstcc[6456] (dcc_spawn_child) child started as pid6457
distcc[6457] (dcc_increment_safeguard) setting safeguard: _D1STCC_SAFEGUARD=2
distcc[6456] (dcc_collect_child) cc child 6457 terminated with status 8
distcc[6456] (dcc_collect_child) cc times: user 8.888888s, system 8.888888s, 8 minflt, 8 majflt
distcc[6456] compile (null) on localhost completed ok distccC6456] elapsed compilation time 8.845778s
distcc[6456] (dcc_exit) exit: code 8; self: 8.888888 user 8.888888 sys; children: 8.816997 user 8.828996 sys
distcc[6456] (dcc_cleanup_tempfiles_inner) deleted 8 temporary files

иногда такое:

distcc[17625]   (dcc_trace_version) distcc 3.1 i686-pc-linux-gnu; built May 6 2818 13:89:21
distcc[17625]   (dcc_recursion_safeguard) safeguard level=8
distcc[17625]   (main) compiler name is "distcc"
distcc[17625]   (dcc_scan_args) scanning arguments: /usr/lib/distcc/bin/i686 pc linuxgnu-gee -march=native -mtune=native pipe -0
distcc[17625]   (dcc_scan_args) -march=native generates code for local machine; must be local
ditcc[17625]   (dcc_lock_host) got cpu lock on localhost slot 8 as fd4
distcc[17625]  exec on localhost: /usr/lib/distcc/bin/i686 pc linuxgnu gec -march=native -mtune=native pipe -02 -E -dD -
distcc[17625]   (dcc_note_state) note state 5, file "(MULL)", host "localhost"
distcc[17625]   (dcc_spawn_child) forking to execute: /usr/lib/distcc/bin/i686-pc-linux-gnu-gcc -march=native -mtune=native -pipe
distcc[17625]   (dcc_spawn_child) child started as pid!7628
distcc[17628]   (dcc_increment_safeguard) setting safeguard:_DISTCC_SAFEGUARD=1
distcc[17628]   (dcc_trace_version) distcc 3.1 i686-pc-linux-gnu; built May 6 2818 13:89:21
distcc[17628]   (dcc_recursion_safeguard) safeguard: 1
distcc[17628]   (dcc_recursion_safeguard) safeguard level=l
distcc[17628]   (main) compiler name is "i686-pc-linux-gnu-gcc"

disttcc вроде бы используется при компиляции но не видно чтоб использовал ресурсы машины .95.
да и нагрузка процессора на .95 машине 0 и посети ничего не передается.
Кстати а демоны distccd на обоих машинах надо запускать?

6

gentoolocal2 log # Is -al /usr/lib/distcc/
total 13
drwxr-xr-x 3 root root   72 May 6 12:48
drwxr-xr-x 23 root root 13544 May 18 17:25
drwxr xr-x 2 root root  264 May 6 13:89 bin

Странный вывод, должно же быть выведено 13 объектов.





сегодня пробывал пересобирать вчерашние проги - в логах ничего не пишется.
Если на .93 написать
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.95"

Это не правильно, на .93 должно быть
DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.93" 


DISTCCD_OPTS="${DISTCCD_OPTS} --listen 192.168.3.93 
то не ругается и в логе пишет что слушает 192.168.3.93:3632
а если закоментировать эту строку то пишет что слушает 0.0.0.0:3632
как должно быть?

Оба варианта правильные.



distcc[17625]   (dcc_scan_args) scanning arguments: /usr/lib/distcc/bin/i686 pc linuxgnu-gee -march=native -mtune=native pipe -0
distcc[17625]   (dcc_scan_args) -march=native generates code for local machine; must be local

Возможно, надо отказаться от native.

Кстати а демоны distccd на обоих машинах надо запускать?

Только на помощнике.

7 (04.06.2010 03:45:21 отредактировано kurilshik)

Вот еще раз вывод ls -al  /usr/lib/distcc/ на .95?

total 13
drwxr-xr-x 3 root root         72 May  6 12:40   .
drwxr-xr-x 23 root root 13544 May 18 17:25  ..
drwxr xr-x 2 root root       264 May  6 13:09   bin


вот сегодня вывод лога distccd после загрузки компа (.95):

distccd[3415] (main) chdir to /tamp
distccd[3415]   (dcc_setup_daemon_path) daemon's PATH is /usr/i686 pc linux-gnu/gcc bin/4.3.4:/bin:/sbin:/usr/bin:/usr/sbin:/usr,
ocal/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin
distccd[3415]   (dcc_listen_by_addr) listening on 0.0.0.0:3632
distccd[3415]   (dcc_defer_accept) TCP_DEFER_ACCEPT turned on
distccd[3415]   (dcc_standalone_server) 2 CPUs online on this server
distccd[3415]   (dcc_standalone_server) allowing up to 4 active jobs
distccd[3415]   (dcc_ignore_sighup) ignoring SIGHUP
distccd[3416]   (dcc_detach) setsid to session 3416
distccd[3416]   (dcc_log_daemon_started) preforking daemon started (3.1 i686-pc-linux-gnu, built May 6 2818 13:89:22)
distccd[3416]   (dcc_create_kids) up to 1 children
distccd[3416]   (dcc_create_kids) up to 2 children
distccd[3416]   (dcc_create_kids) up to 3 children
distccd[3416]   (dcc_create_kids) up to 4 children

на .93 distccd удалил из автозагрузки

Результатов нет, сейчас буду отключать nativ...
...
Вобщем попробывал - разницы нет, disttcc упорно все компилит на локальной машине..
У меня зарождается идея переставить gentoo....
.....
Сегодня обнаружил в файле /ect/distcc/host  (на .93 машине )наличие второй пустой строки (в первой строке IP ...93  ...95)
удалил эту строку и в логе distccd на второй машине (.95) при компиляции побежал лог.
Но посети все равно ничего не передается и загрузка проца на .95 нулевая, т.е вродебы distccd на (.95)
зааботает, но пока только работает на генерацию лога.

........

Переставил гентку и все заработало,(без march=native )..