我正在开展一个项目,但在理解交付该项目的最佳方式方面遇到了一些困难。该项目由我编写的一个网络应用程序组成,将在旧/多余的计算机上使用。我们的想法是将此应用程序与 Linux 发行版打包在一起,然后将其安装在这些计算机上或通过实时 USB 运行。基本上,当您打开计算机时,它应该加载操作系统,自动启动网络应用程序,启动浏览器并将其指向网络应用程序。这就是它需要做的全部。有点像信息亭应用程序,尽管与信息亭不同,用户应该完全控制浏览器。
我在运行最新版本 Raspberry Pi OS 的 Raspberry Pi 4(2GB 内存)上对此进行了原型设计。设备打开后,大约需要 43 秒才能在浏览器中显示网络应用程序。我认为这是合理的表现。
然后,我尝试在一台旧的 Intel i5 计算机上运行相同的程序,该计算机具有 4GB 内存,运行最新版本的 Lubuntu(全新安装)。我选择Lubuntu是因为我最了解*Ubuntu,而且我相信Lubuntu是“最精简”的风格。我所经历的事情我无法解释。系统花了 2 分 44 秒才完全启动,比性能差得多的 RPi 足足多了 2 分钟。
这是我发现的:
RPi Lubuntu
POST 0:10 0:06
Splash Screen NONE 0:28
Desktop Init 0:20 1:59
Browser launches 0:39 2:40
Ready 0:43 2:44
我对 Linux 的了解还不够深入,无法理解花了这么长时间发生的事情,更重要的是,我可以做些什么来尝试获得更好的性能。我是否开始尝试把东西撕掉?这是 Lubuntu 的全新安装,因此没有太多内容。当然,我真正需要的只是我的网络应用程序和浏览器。我应该尝试不同的发行版吗?如果是的话,是哪一个?我希望已安装的 USB 盒和 Live USB 盒都具有出色的性能。
感谢您提供的任何帮助或建议。
更新1
编辑:添加 systemd-analyze 的输出
17.622s dev-sda1.device
12.457s snapd.service
12.221s udisks2.service
11.998s networkd-dispatcher.service
11.341s accounts-daemon.service
9.977s ModemManager.service
9.226s NetworkManager-wait-online.service
8.385s systemd-journal-flush.service
7.349s NetworkManager.service
7.258s thermald.service
6.689s apport.service
6.525s e2scrub_reap.service
6.353s apparmor.service
5.832s grub-common.service
5.803s rsyslog.service
5.267s avahi-daemon.service
5.067s systemd-logind.service
5.048s wpa_supplicant.service
5.043s ofono.service
5.032s grub-initrd-fallback.service
4.653s plymouth-quit.service
4.652s setvtrgb.service
4.519s colord.service
4.503s gpu-manager.service
3.919s upower.service
3.520s systemd-resolved.service
2.734s pppd-dns.service
2.625s systemd-udev-trigger.service
我运行这个程序的设备不是服务器,而是我岳母的旧笔记本电脑,大概有六七年了。它是一台理想的测试机器,因为它代表了该项目将使用的机器类型(例如,我们得到了我们得到的东西,但无法控制规格)。
看起来它有一个旧的慢速硬盘,无法更换。在哪里可以最有效地停止服务 - 我真正需要的是以太网、Wifi、我的网络应用程序和浏览器。
=======更新2
我采纳了建议并运行 systemd-analyze Blame 来尝试找出哪些进程花费了这么长时间。我把结果贴在上面了。然后我通过练习找出哪些服务对于我的需求来说是不必要的并禁用它们。这是我发现的内容的列表:
ModemManager.service
snapd.service
snapd.autoimport.service
snapd.core-fixup.service
snapd.seeded.service
snapd.system-shutdown.service
avahi-daemon.service
ofono.service
accounts-daemon.service
bluetooth.service
pppd-dns.service
然后我重新启动并验证我停止的服务是否丢失,而且它们确实丢失了。不幸的是,启动时间似乎没有改变。以下是数字:
Stripped Down
RPi Lubuntu Lubuntu
POST 0:10 0:06 0.06
Splash Screen NONE 0:28 0:28
Desktop Init 0:20 1:59 1:56
Browser launches 0:39 2:40 2:38
Ready 0:43 2:44 2:42
详细情况如下:
20.443s dev-sda1.device
10.809s networkd-dispatcher.service
9.951s udisks2.service
8.997s NetworkManager-wait-online.service
7.976s NetworkManager.service
6.407s rsyslog.service
6.405s thermald.service
6.210s grub-initrd-fallback.service
5.978s systemd-logind.service
5.953s wpa_supplicant.service
5.952s apport.service
5.952s grub-common.service
5.833s e2scrub_reap.service
5.177s gpu-manager.service
3.930s systemd-journal-flush.service
3.928s systemd-tmpfiles-setup.service
3.668s upower.service
3.652s systemd-resolved.service
3.611s systemd-udevd.service
3.475s apparmor.service
2.725s systemd-udev-trigger.service
2.184s ssh.service
1.904s systemd-backlight@backlight:radeon_bl0.service
1.159s systemd-sysctl.service
818ms systemd-rfkill.service
807ms systemd-modules-load.service
684ms systemd-sysusers.service
681ms systemd-tmpfiles-setup-dev.service
663ms [email protected]
631ms keyboard-setup.service
583ms systemd-timesyncd.service
我禁用的所有服务都从列表中丢失,并且每个剩余服务的时间与原始服务没有太大不同。但是......启动时间并没有真正改变。这里发生了什么??