我正在尝试减少运行 Debian Stretch 的 Beaglebone ( 4.14.32-ti-r42 #1 SMP Thu Apr 5 23:13:09 UTC 2018 armv7l GNU/Linux
) 的启动时间,以在其 LCD 上显示本地 HTML 页面。
到目前为止,我所做的每项分析都表明启动时间 <25 秒,但显示 HTML 页面仍然需要 45 秒以上。
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
HTML 页面服务
我创建的在 LCD 上加载页面的过程是at-gui.service
:
[Unit]
Description=Start GUI
[Service]
ExecStart=/bin/bash -lc 'startx'
[Install]
WantedBy=basic.target
此进程启动 OpenBox,它被配置为加载显示 HTML 页面的浏览器。
启动时间
启动后 27 秒左右,LCD 显示亮度发生一些变化(可能表明 Openbox 已启动?)。显示 HTML 页面需要 48 秒。
一个可能的开始
- 该项目
[email protected]
需要 10 秒以上才能启动。我需要它(我需要访问 Postgres 数据库),但是不是在显示第一页之前。有没有一个更精简的等价物[电子邮件受保护]只是为了运行 Postgres 数据库?
主要问题
- 如何看出额外的约 25 秒去哪儿了?
- 如何预先加载 HTML 页面的显示?
答案1
回答你的第一个问题:
你at-gui.service
有Type=simple
(默认),所以它被认为是开始了该过程一开始bash
。因此,无论显示有用的内容实际花费的时间,systemd 都不会计算在内。
我不明白你的第二个问题,无论如何,它可能应该单独问。