Quanto tempo levaria para construir userland e kernel do NetBSD?

2

Estou interessado em usar o NetBSD como o sistema operacional no meu servidor. Eu não usei um sistema em que as atualizações de segurança são realizadas por fonte, mas li o suficiente no guia para me sentir à vontade tentando fazê-lo. No entanto, não sei quanto tempo esta operação levará.

Dado um servidor razoavelmente modesto de, digamos, 1 núcleo de processador e 0.5 a 1.0 GB de RAM, quanto tempo deve ser esperado para construir a área de usuário e kernel de um sistema x86_64, seguindo as instruções de Capítulo 33. Atualizando um sistema existente a partir de fontes no guia?

Além disso, quanto espaço em disco local esta operação requer? Eu não vi menção disso no guia.

    
por user981178 19.04.2016 / 23:20

4 respostas

3

Eu sugeriria que qualquer servidor x86_64 true decente não tão moderno deve ser capaz de fazer uma construção completa em algumas horas ou talvez menos, incluindo xsrc.

Meu servidor de compilação atual do NetBSD é um domu Xen com 8 GB de RAM e 8 VCPUs em execução em um Dell PE2950 8-core (Xeon E5440 a 2,83 GHz) com 32 GB de RAM e com um conjunto decentemente rápido de discos SAS no PERC integrado Controlador 6 / i (com a saída de compilação indo para uma partição RAID-0). Essa máquina só me custou cerca de US $ 650 [us], é claro. Ele pode fazer uma compilação NetBSD-5 / i386 de tudo para ISOs finais, com tudo vinculado à estática (ou seja, exigindo muito mais IO de disco e memória de linker do que uma compilação dinâmica), de fontes montadas em NFS em outra domU no mesmo servidor, em menos de 2 horas (com -j12). Uma compilação do kernel (amd64 GENERIC) após uma reinicialização (nada armazenado em cache) leva menos de 5min (com -j12).

No momento, minha partição /build tem 102 GB usados e contém objetos, binários e ISOs para três compilações de corrente (amd64, i386, evbarm) e duas construções de 5.x (amd64 e i386). Tenha em mente que todos os binários vinculados a estática são separados - as construções vinculadas dinamicamente são muito menores. Uma instalação completa com link estático (ou seja, com xsrc e comp e tudo mais) leva cerca de 6,6 GB.

    
por 23.04.2016 / 02:17
4

Demora cerca de um dia para me construir 5 ou mais arquiteturas diferentes, como versões completas (também conhecidas como tarballs e imagens ISO). Estou construindo uma memória relativamente baixa (512M) , máquina virtual i386, usando um script que também verifica as fontes, e faz um monte de setup em torno do build.sh.

Se você tiver mais de um processador / núcleo, poderá acelerar o processo definindo o nível de simultaneidade para o número de processadores / núcleos ou até o dobro do número de processadores / núcleos, já que a compilação é predominantemente I / O ligado.

    
por 20.04.2016 / 22:51
3

Talvez demore mais de 90 minutos para criar o kernel. Para acelerar o processo de compilação, precisamos usar a opção -j , por exemplo, se você tem 2 núcleos que você pode digitar:

fakeroot make-kpkg..... -j 2

ou

make -j 2

você pode acelerar o processo de compilação X2 (45 min), (8 core a menos de 10min)

Você também pode usar a variável CONCURRENCY_LEVEL , por exemplo, se tiver 2 núcleos, você pode digitar:

export CONCURRENCY_LEVEL=3

geralmente:

export CONCURRENCY_LEVEL= the number of cores +1
    
por 20.04.2016 / 00:37
1

Para referência, um ./build.sh -U -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release (no X11) em um MacBook Air i7 1.7GHz 8GB de RAM, o NetBSD-7.0-release, levou aproximadamente 2 horas:

===> 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
===> .

E para uso do espaço:

$ 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

As versões posteriores (atualizações) devem ser mais rápidas; Eu atualizei usando o CVS para a tag 7.0-stable (cvs update -r netbsd-7-0 -Pd) e reconstruí, demorei aproximadamente uma hora:

===> 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
===> .
    
por 27.05.2016 / 14:24