kernelおよびworldの再構築を高速化する

対象プラットフォーム: FreeBSD 7.x / FreeBSD 6.x


はじめに

kernelを再構築したり、buildworldでベースシステムを再構築する場合、そのマシンがデュアルコアやクワッドコアなどのマルチコアCPUを搭載している場合には、再構築時の処理を並列化することにより、再構築の時間を大幅に短縮することが可能です。

このページでは、再構築時の処理を並列化する方法について説明します。

尚、このページの内容は、技術評論社の「FreeBSD勉強会」の第一回「システム/カーネル構築の高速化Tips」で、FreeBSD committer 後藤大地さんによって発表されたものの一部を抜粋したものです。

kernel再構築時の処理の並列化

kernelの再構築時の処理を並列化するには、makeに「-jN」パラメータ(Nは並列数)を付与して実行します。

kernel再構築時の処理の並列化の例
$ cd /usr/src/sys/i386/conf
$ config GENERIC
$ cd ../compile/GENERIC
$ make cleandepend
$ make depend
$ make -j2
$ make install

上記の例では、kernel構築時の処理を2つに並列化して実行しています。

ベースシステム再構築時の処理の並列化

ベースシステムの再構築時の処理を並列化する場合にも、makeに「-jN」パラメータ(Nは並列数)を付与して実行します。

ベースシステム再構築時の処理の並列化の例
$ cd /usr/src
$ make -j2 buildworld

上記の例では、ベースシステム構築時の処理を2つに並列化して実行しています。

並列化の限界

makeの引数「-jN」のNの値を増やしていくことにより、並列数を増やしていくことが可能ですが、CPUのコア数が並列数Nよりも多い場合でも、並列化による処理の高速化は頭打ちになっていくようです。

詳しくは後藤大地さんのプレゼン資料をご参照ください。

ports構築時の処理の並列化

同様の並列化は、一部のportsでも応用可能です。
「www/firefox3」「mail/thunderbird」等のportsは並列化が可能のようです。


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まだ評価がありません

表示できるメッセージはありません。


目次に戻る
image