Tempo de inicialização SysV vs Systemd - sistema systemd leva ~ 2 segundos a mais!

2

Estou usando meta-raspberrypi para criar minha raspberrypi image

Eu vejo um tempo de inicialização maior de aproximadamente 2 segundos com systemd quando comparado ao SysV.

Eu não obtenho muita informação do log do kernel.

systemd

[    4.452082] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    8.111375] i2c /dev entries driver
[    8.284057] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered

SysV

[    3.839449] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    5.990874] i2c /dev entries driver
[    6.136112] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered

Como pode ser visto acima, o systemd gasta algum tempo extra após a inicialização do kernel básico e antes de carregar o módulo do kernel i2c.

Estou assumindo que esse tempo é gasto na inicialização dos serviços do systemd.

Se sim, como posso verificar quais serviços são iniciados e quanto tempo cada um deles está tomando?

    
por mk.. 05.10.2017 / 13:15

1 resposta

1

Primeiro, eu observaria que ambas as saídas na sua pergunta são do init do SysV ( INIT: version 2.88 ), então em algum momento você ficou confuso.

De qualquer forma, WRT o calendário de vários serviços, você pode obter um SVG bastante atrevido com systemd-analyze plot > sysd.svg (o redirecionamento aqui é necessário, caso contrário, ele imprime dados SVG na saída padrão, o que não é muito útil):

Não há escolha do formato de saída, mas este (de um B + rodando Raspbian 8) foi transformado em um JPEG com convert sysd.svg sysd.jpg ( convert é parte do ImageMagick, disponível em qualquer distribuição linux).

Uma lista de texto mais simples está disponível com systemd-analyze blame .

systemd is starting so any services that i dont need

Provavelmente, mas geralmente isso não leva tempo. Por exemplo, se algum serviço estiver encarregado de configurar o NFS, mas você não tiver configurado nenhum sistema de arquivos, isso não levará tempo ou recursos.

É claro que, no interesse da limpeza, você pode querer se livrar deles de qualquer maneira. Certifique-se de que você está certo de que algo é o primeiro. systemctl list-units é útil aqui, pois, por padrão, fornece uma lista simples de serviços carregados. O Systemd tem muitas páginas de manual; você pode encontrá-los com apropos systemd (se você não obtiver nenhuma saída, tente sudo mandb primeiro, por alguma razão, às vezes isso não é mantido em algumas distribuições). Muitos desses são guias para escrever arquivos de serviço; para limitá-lo estritamente aos comandos use apropos -s 1 systemd .

    
por 05.10.2017 / 14:04