NetBSD 사용자 공간과 커널을 구축하는 데 시간이 얼마나 걸릴 수 있습니까?

NetBSD 사용자 공간과 커널을 구축하는 데 시간이 얼마나 걸릴 수 있습니까?

내 서버의 운영 체제로 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
===> .

관련 정보