Перыл кучу инфы по настройке 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"
поэтому незнаю есть ли подобные темы или нет.
[Решено] Не могу настроить distcc
На сервере .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 на наличие логов. Лучше их выложить сюда.
машины одинаковые
Спасибо лог заработал, ( Помимо неправильного владельца обнаружил ошибку в первом слове '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" на обоих машинах молчит - черный экран
lоg distccd на основной машине:
Я никогда не делал disdtcc через localhost, поэтому ничего сказать не могу.
Может genlop не то средство которым можно судить о времени компиляции?
Монитор "distccmon-text -1" на обоих машинах молчит - черный экран ( вспомогательную машину смотрю через ssh).
Если пакет собирается впервые, genlop просто засекает время сборки, но не предсказывает. Монитор у меня тоже не работает, я даже не разбирался.
беспокоят строчки error и failed (1 и 4 снизу):
А какой вывод ls -al /usr/lib/distcc/ на .95?
вот такой:
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 на обоих машинах надо запускать?
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 на обоих машинах надо запускать?
Только на помощнике.
Вот еще раз вывод 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 )..