私のサーバーのオペレーティングシステムとしてNetBSDを使用したいと思います。セキュリティ更新プログラムはソースで実行されているシステムを使用していませんでしたが、快適に試すのに十分なガイドを読んでいました。しかし、この手術がどれくらいかかるかはわかりません。
プロセッサコア1個とRAM 0.5〜1.0GBなど、非常に小さなサーバーを想定している場合、以下のガイドラインに従ってx86_64システム用のユーザー領域とカーネルを構築するのに予想される時間はどのくらいですか?第33章ソースからの既存のシステムの更新ガイドに?
また、これにはどのくらいのローカルディスク容量が必要ですか?このガイドにはこの内容は記載されていません。
答え1
一日かかる私5つの異なるアーキテクチャを完全なリリースでビルドします(タールボールとISOイメージとも呼ばれます)。私は比較的低いメモリ(512M)i386仮想マシンでスクリプトを使用してソースコードを調べ、build.shのいくつかの設定を行っています。
プロセッサ/コアが複数ある場合は、並行性レベルをプロセッサ/コア数に設定するか、プロセッサ/コア数を2倍に設定して作業速度を上げることができます(ビルドがI / O制限によって支配されると仮定)。
答え2
私はあまり現代的ではないまともなx86_64 trueをお勧めします。仕える人数時間以内にxsrcを含む完全なビルドを完了できるはずです。
現在、NetBSD用のビルドサーバーは、32 GBのRAMを搭載したDell PE2950 8コア(Xeon E5440 @ 2.83 GHz)と比較的高速の統合PERC 6 / i高速SASディスクコントローラセットで実行される8 GBのRAMと8つのVCPUを備えたXen domUです(ビルド出力はRAID-0パーティションに移動します)。もちろん、そのマシンを使用したときのコストは約650ドルに過ぎませんでした。 NetBSD-5 / i386から最終ISOまですべてを構築できます。他のdomUのNFSマウントソースからすべてが静的にリンクされます(つまり、動的にリンクされたビルドよりも多くのディスクIOおよびリンカメモリが必要です)。同じサーバーで、2時間未満(-j12を使用)再起動後(キャッシュなし)、カーネルビルド(amd64 GENERIC)は5分未満(-j12を使用)します。
現在、私の/build
パーティションは102 GBを使用しており、3つの最新バージョン(amd64、i386、evbarm)と2つの5.xバージョン(amd64とi386)のオブジェクト、バイナリ、およびISOが含まれています。これらはすべて別々の静的にリンクされたバイナリであることを覚えておいてください。動的にリンクされたビルドははるかに小さいです。静的リンク(つまり、xsrc、comp、およびその他すべての項目を含む)を使用したフルインストールには約6.6 GBかかります。
答え3
カーネルの構築には90分以上かかることがあります。コンパイルプロセスを高速化するには、オプションを使用する必要があります -j
。たとえば、コアが2つの場合は、次のように入力できます。
fakeroot make-kpkg..... -j 2
または
make -j 2
コンパイルプロセスの速度をX2(45分)に短縮できます(8コアの場合は10分未満)。
この変数を使用することもできますCONCURRENCY_LEVEL
。たとえば、コアが2つの場合は、次のように入力できます。
export CONCURRENCY_LEVEL=3
一般的に言うと:
export CONCURRENCY_LEVEL= the number of cores +1
答え4
注意./build.sh -U -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release
:MacBook Air i7 1.7GHz 8GB RAM、NetBSD-7.0バージョン(X11を除く)では約2時間かかります。
===> Summary of results:
build.sh command: ./build.sh -U -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release
build.sh started: Thu May 26 23:51:30 EDT 2016
NetBSD version: 7.0
MACHINE: amd64
MACHINE_ARCH: x86_64
Build platform: Darwin 15.4.0 x86_64
HOST_SH: /bin/sh
No $TOOLDIR/bin/nbmake, needs building.
Bootstrapping nbmake
MAKECONF file: /etc/mk.conf (File not found)
TOOLDIR path: /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64
DESTDIR path: /Users/mbelleau/netbsd/obj_amd64/destdir.amd64
RELEASEDIR path: /Users/mbelleau/netbsd/obj_amd64/releasedir
Created /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake
Updated makewrapper: /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake-amd64
Successful make release
build.sh ended: Fri May 27 01:43:58 EDT 2016
===> .
空間活用の場合:
$ du -sh /Users/mbelleau/netbsd/*
129M /Users/mbelleau/netbsd/gnusrc.tgz
3.7G /Users/mbelleau/netbsd/obj_amd64
7.1M /Users/mbelleau/netbsd/sharesrc.tgz
137M /Users/mbelleau/netbsd/src.tgz
48M /Users/mbelleau/netbsd/syssrc.tgz
2.9G /Users/mbelleau/netbsd/usr
158M /Users/mbelleau/netbsd/xsrc.tgz
その後の(最新の)リリースはより速くなります。 CVSを使用して7.0-stableタグに更新し(cvs update -r netbsd-7-0 -Pd)、再構築に約1時間かかりました。
===> Summary of results:
build.sh command: ./build.sh -U -u -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release
build.sh started: Fri May 27 09:08:10 EDT 2016
NetBSD version: 7.0.1_PATCH
MACHINE: amd64
MACHINE_ARCH: x86_64
Build platform: Darwin 15.4.0 x86_64
HOST_SH: /bin/sh
No $TOOLDIR/bin/nbmake, needs building.
Bootstrapping nbmake
MAKECONF file: /etc/mk.conf (File not found)
TOOLDIR path: /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64
DESTDIR path: /Users/mbelleau/netbsd/obj_amd64/destdir.amd64
RELEASEDIR path: /Users/mbelleau/netbsd/obj_amd64/releasedir
Created /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake
Updated makewrapper: /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake-amd64
Successful make release
build.sh ended: Fri May 27 10:11:14 EDT 2016
===> .