現: 2009-08-19 (水) 01:23:05 maruo ソース
Line 1: Line 1:
 +[[Gentoo Linuxな生活/サーバ設定関連]]
 +*Gentooといえば [#sa68e426]
 +コンパイルしてパッケージをインストールするディストリビューションですからね。常にコンパイルから離れることはできません。しかしコンパイルはひじょ~に時間がかかるもの。なんとか短縮したいものですよね。そこでいくつか考えられますね。
 +
 +-早いCPUに乗せ変えてせこせこコンパイル
 +-多くのPCで分担してコンパイルする
 +
 +で、早いCPUに乗せかえるのは金がかかってしまいますので、お休みしているパソコンちゃんに分散してやらせるのがいい手ですね。そもそもCPUが遊んでるなら利用しない手はありません
 +
 +*distcc [#r2b4ae48]
 +そこで登場するのがdistccです。gccで分散コンパイルをやらせるお手軽ツールちゃんです
 +
 +**インストール [#n1179c02]
 + # emerge distcc
 +
 +おっしまい。分散コンパイルに参加させたいホストは全部やってやります
 +**設定 [#u732ce9c]
 + # distcc-config --set-hosts IPアドレス1 IPアドレス2 .....
 +
 +と並べて記述していきます。これで分散させるホストが決定します。
 +
 +さらに/etc/conf.d/distccdを編集いたします。ほとんどそのままでよいのですが、DISTCC_OPTSに--allow, --listenを追加してやると、セキュリティ的に安心になります。--allowは要求を許可するホストをネットワークアドレスで書いてやります。--listenはサーバ側がポートを開くアドレスを指定してやります。
 + DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/16" みたいに
 +
 +さらにインストールすると環境変数DCCC_PATHが追加されます。内容は"/usr/lib/distcc/bin"になってます。このPATHを/usr/binよりも前に追加してやると、gcc,cc等のコマンドがdistccで分散させるための実行コマンドに変わります。私は/etc/profileをちょいと編集してしまいました。
 +**make.confの設定 [#r69ac3a6]
 +make.confにMAKEOPT,FEATURESを追加してやります。
 + MAKEOPTS="-j4"
 + FEATURES="distcc"
 +ここでは4にしてますが、1台のPCのCPUの数+1×PC台数分です。うちだとCPU1つのPCが2つ。なので
 +(1+1)×2で4になるわけですね。
 +*さて、実行結果は? [#pc04a8a0]
 +自動的にジョブ数が均等になるようにdistccが分散してくれます。普通のemergeもmakeの並列コンパイルに対応してると勝手に分散します。特に効果がでかかったのは、カーネルのコンパイル。
 +
 + # make menuconfig
 + # make -j4
 + # make modules_install
 +
 +でLinux2.6のコンパイルは終了いたしますが、Pentium3の800MHzのノートでコンパイルすると1時間ぐらいかかるカーネルのコンパイルが、Celron2.6GHzのサーバもコンパイルに参加させるので、20分ぐらいで終了します。さらにPCの台数を増やすとどんどんコンパイル速度が速くなるという仕組み。これならチープなCPUのパソにGentooをインストールするのも怖くなくなりますねぇ~。うっふっふ
  

  • GentooLinuxな生活/分散コンパイルで悩む のバックアップ差分(No. All)
    • 現: 2009-08-19 (水) 01:23:05 maruo

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3296, today: 1, yesterday: 1
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード