내 서버의 운영 체제로 NetBSD를 사용하고 싶습니다. 보안 업데이트가 소스에서 수행되는 시스템을 사용하지는 않았지만 편안하게 사용해 볼 수 있을 만큼 가이드를 충분히 읽었습니다. 하지만 이 수술이 얼마나 걸릴지는 모르겠습니다.
프로세서 코어 1개와 RAM 0.5~1.0GB와 같이 매우 작은 서버를 가정할 때 아래 지침에 따라 x86_64 시스템용 사용자 영역과 커널을 빌드하는 데 예상되는 시간은 얼마나 될까요?33장 소스에서 기존 시스템 업데이트가이드에?
또한 이 작업에는 얼마나 많은 로컬 디스크 공간이 필요합니까? 가이드에는 이 내용이 언급되어 있지 않습니다.
답변1
하루정도 소요됩니다나5개 정도의 서로 다른 아키텍처를 완전한 릴리스로 빌드합니다(타르볼 및 ISO 이미지라고도 함). 저는 비교적 낮은 메모리(512M) i386 가상 머신에서 스크립트를 사용하여 소스 코드를 검사하고 build.sh에 대한 여러 설정을 수행하고 있습니다.
프로세서/코어가 여러 개 있는 경우 동시성 수준을 프로세서/코어 수로 설정하거나 프로세서/코어 수를 두 배로 설정하여 작업 속도를 높일 수 있습니다(빌드가 I/O 제한에 의해 지배된다고 가정).
답변2
나는 그다지 현대적이지 않은 괜찮은 x86_64 true를 추천합니다.섬기는 사람몇 시간 이내에 xsrc를 포함한 전체 빌드를 완료할 수 있어야 합니다.
현재 NetBSD용 빌드 서버는 32GB RAM을 갖춘 Dell PE2950 8코어(Xeon E5440 @2.83GHz)와 비교적 빠른 통합 PERC 6/i 고속 SAS 디스크 컨트롤러 세트에서 실행되는 8GB RAM 및 8개의 VCPU를 갖춘 Xen domU입니다( 빌드 출력은 RAID-0 파티션으로 이동합니다). 물론 그 기계를 사용했을 때 비용은 약 650달러에 불과했습니다. NetBSD-5/i386부터 최종 ISO까지 모든 것을 빌드할 수 있으며, 다른 domU의 NFS 마운트 소스에서 모든 것이 정적으로 링크됩니다(즉, 동적으로 링크된 빌드보다 더 많은 디스크 IO 및 링커 메모리가 필요함). 동일한 서버, 2시간 미만(-j12 사용) 재부팅 후(캐시 없음) 커널 빌드(amd64 GENERIC)는 5분 미만이 소요됩니다(-j12 사용).
현재 내 /build
파티션은 102GB를 사용하고 있으며 세 가지 최신 버전(amd64, i386, evbarm)과 두 가지 5.x 버전(amd64 및 i386)에 대한 개체, 바이너리 및 ISO를 포함하고 있습니다. 이것들은 모두 별도의 정적으로 링크된 바이너리라는 점을 기억하십시오. 동적으로 링크된 빌드는 훨씬 더 작습니다. 정적 링크(즉, xsrc, comp 및 기타 모든 항목 포함)를 사용한 전체 설치에는 약 6.6GB가 소요됩니다.
답변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
===> .