25s entre a inicialização do systemd e a exibição real

0

Estou tentando reduzir o tempo de inicialização de um Beaglebone ( 4.14.32-ti-r42 #1 SMP Thu Apr 5 23:13:09 UTC 2018 armv7l GNU/Linux ) executando o Debian Stretch para exibir uma página HTML local em seu LCD.

Todas as análises que fizemos até agora indicam que a inicialização é de < 25s, mas ainda demora mais de 45s para exibir a página HTML.

systemd-analyze
    Startup finished in 6.158s (kernel) + 17.082s (userspace) = 23.240s

systemd-analyze blame
     22.762s dev-mmcblk1p1.device
     12.823s [email protected]
      2.613s systemd-udev-trigger.service
      2.301s systemd-logind.service
      1.874s sysstat.service
      1.848s networking.service
      1.431s bb-wl18xx-wlan0.service
      1.430s ssh.service
      1.186s generic-board-startup.service
      1.082s connman.service
       891ms avahi-daemon.service
       859ms systemd-journald.service
       798ms udhcpd.service
       639ms systemd-udevd.service
       491ms systemd-timesyncd.service
       464ms systemd-random-seed.service
       449ms systemd-tmpfiles-setup-dev.service
       415ms systemd-user-sessions.service
       363ms rsyslog.service
       310ms systemd-sysctl.service
       304ms sys-fs-fuse-connections.mount
       302ms systemd-update-utmp-runlevel.service
       302ms systemd-tmpfiles-setup.service
       269ms sys-kernel-debug.mount
       269ms hostapd.service
       252ms sys-kernel-config.mount
       249ms systemd-modules-load.service
       230ms systemd-backlight@backlight:backlight.service
       221ms systemd-journal-flush.service
       215ms dev-mqueue.mount
       205ms kmod-static-nodes.service
       205ms systemd-update-utmp.service
       199ms [email protected]
       160ms systemd-remount-fs.service
        47ms postgresql.service

systemd-analyze critical-chain
graphical.target @14.388s
└─multi-user.target @14.383s
  └─postgresql.service @14.326s +30ms
    └─[email protected] @3.885s +10.382s
      └─basic.target @3.639s
        └─sockets.target @3.639s
          └─dbus.socket @3.639s
            └─sysinit.target @3.635s
              └─systemd-backlight@backlight:backlight.service @12.982s +205ms
                └─system-systemd\x2dbacklight.slice @12.943s
                  └─system.slice @700ms
                    └─-.slice @614ms

O serviço de página HTML

O processo que criei e carrega a página no LCD é at-gui.service :

[Unit]
Description=Start GUI

[Service]
ExecStart=/bin/bash -lc 'startx'

[Install]
WantedBy=basic.target

Este processo inicia o OpenBox, que é configurado para carregar um navegador com a página HTML mostrada.

Tempos de inicialização

O LCD mostra alguma mudança no brilho (possivelmente indicando que o Openbox começou?) por volta de 27s após a inicialização. São necessários 48 segundos para mostrar a página HTML.

Um possível começo

  • O item [email protected] leva > 10s para começar. Eu preciso disso (preciso acessar um banco de dados Postgres), mas não antes de mostrar a primeira página. Existe um equivalente mais enxuto de [email protected] apenas para executar um banco de dados Postgres?

Pergunta principal

  • Como se pode ver para onde estão indo os 25 ~ extras?
  • Como alguém pode antecipar a exibição de uma página HTML?
por sscirrus 06.06.2018 / 19:08

1 resposta

0

Para responder sua primeira pergunta:

Seu at-gui.service tem Type=simple (o padrão), por isso é considerado iniciado assim que o processo bash é iniciado. Assim, qualquer tempo que realmente demore para exibir algo útil não é explicado pelo systemd.

Eu não entendo sua segunda pergunta, e provavelmente deve ser feita separadamente de qualquer maneira.

    
por 07.06.2018 / 18:52