练习实践-linux启动耗时分析

练习实践-启动耗时整体概览,具体服务的启动细节

参考来源:
B站up主林哥讲运维:一分钟学会:可视化查看系统启动时的性能
如何使用Linux命令查看系统的启动进程(linux查看启动进程)
解决ubuntu开机变慢;删除耗时启动项

(调查研究)通过参考来源中内容的对比,发现视频中介绍的将启动过程导出为svg图片的方式,还需要在浏览器打开,然后分析,没有
直接通过命令systemd-analyze blame #查看开机启动项耗时 来得清爽。

简介:

通过systemd-analyze工具,统计ubuntu1804启动耗时,发现超过2分钟,然后通过分析具体的服务耗时,了解服务的具体作用,综合考虑影响范围和消耗时间,将部分服务功能禁用,以提高启动时间的试验记录。

systemd-analyze工具

工具介绍(来自讯飞星火大模型ai)

systemd-analyze 是 systemd 系统和服务管理器提供的一个命令,用于分析启动时间。以下是 systemd-analyze 的一些常用选项:systemd-analyze: 显示系统启动的耗时信息。
systemd-analyze blame: 显示启动时各个服务启动所花费的时间,并按耗时排序。
systemd-analyze critical-chain: 显示启动时关键路径上的各个服务及其耗时。
systemd-analyze plot > boot.svg: 将启动耗时信息输出为SVG格式的图片文件。
systemd-analyze time: 显示从系统启动到当前所经过的时间。
使用这些选项可以帮助你分析系统的启动性能,找出可能影响启动速度的服务,并进行优化
  1. 直接输入,显示启动整体耗时,
root@ub1804:/home/xiaoyue# systemd-analyze 
Startup finished in 7.764s (kernel) + 2min 12.368s (userspace) = 2min 20.132s
graphical.target reached after 1min 57.819s in userspace

2.将启动过程打印输出svg图片

systemd-analyze plot >boot.svg

在这里插入图片描述
先搞清楚这个耗时的服务是做啥用的(问了讯飞星火大模型ai)

atp-daily.service 服务介绍

atp-daily.service 服务介绍:
服务功能:atp-daily.service 服务主要负责执行与Application Troubleshooting Platform(ATP)相关的日常任务。这些任务可能包括数据收集、分析报表的生成和更新等。服务影响:此服务对系统的日常运行影响不大,但如果用户需要立即使用系统而不希望等待服务完成,可以考虑延后执行或禁用该服务。服务配置:通过编辑服务的计时器,如apt-daily.timer,可以调整服务启动的时间。例如,设置OnBootSec选项可以使服务在开机后一段时间再启动。优化策略:如果确定不需要此服务,可以通过系统ctl命令禁用和关闭服务来避免不必要的资源消耗。维护建议:定期检查服务的运行状态和日志,确保服务不会因错误而影响系统性能。可以使用systemctl status apt-daily.service命令查看服务状态。

将显示启动消耗1分多钟的服务给停止后禁止启动

root@ub1804:/home/xiaoyue# sudo systemctl stop apt-daily.service
Warning: Stopping apt-daily.service, but it can still be activated by:apt-daily.timer
root@ub1804:/home/xiaoyue# sudo systemctl stop apt-daily.timer
root@ub1804:/home/xiaoyue# systemctl disable apt-daily.service
root@ub1804:/home/xiaoyue# systemctl disable apt-daily.timer
Removed /etc/systemd/system/timers.target.wants/apt-daily.timer.

然后重启设备,重新执行命令,进行效果确认

root@ub1804:/home/xiaoyue# systemd-analyze
Startup finished in 2.467s (kernel) + 1min 30.191s (userspace) = 1min 32.658s
graphical.target reached after 23.588s in userspace

看到启动时间从2分20秒降到1分32秒,降低了48秒,内核启动时间由7.764s秒降到了2.467s;

重新导出启动过程,查看是否还存在已经被禁用的服务;
———————分隔符—————————————

继续尝试优化启动时间

snap服务耗时

在这里插入图片描述
在这里插入图片描述

root@ub1804:/home/xiaoyue# systemd-analyze blame21.348s plymouth-quit-wait.service2.675s snapd.service

snap服务的功能

(来自讯飞星火大模型ai的回复)

plymouth-quit-wait.service是**一个在系统启动过程中负责显示启动徽标的服务,直到启动过程完成,隐藏启动初始屏幕再显示图形登录界面**。下面将深入探讨plymouth-quit-wait.service服务的各个方面:1. **服务功能和作用**- **启动徽标加载**:plymouth-quit-wait.service服务的主要功能是在系统启动时加载并显示启动徽标[^1^]。这一功能不仅增强了用户体验,通过提供视觉反馈,还能让用户在启动过程中感受到系统的响应。- **图形登录界面显示**:此服务还负责在启动过程完成后隐藏启动初始屏幕,然后显示图形登录界面[^1^]。这保证了用户能够顺利进入操作系统,进行后续的操作和使用。
2. **服务依赖和影响**- **依赖关系**:虽然plymouth-quit-wait.service服务看似简单,但实际上它与系统中几乎所有的服务都有联系。这种广泛的依赖性要求该服务必须平稳运行,以维护整个系统的启动流程[^1^]。- **对启动时间的影响**:尽管该服务几乎与所有其他服务相关联,但实际对系统的启动时间并没有显著影响。这意味着它可以在不影响系统性能的前提下,提高系统的视觉吸引力和用户满意度[^1^]3. **管理和优化**- **关闭和开启服务**:为了验证plymouth-quit-wait.service服务对启动时间的影响,可以临时关闭该服务,使用命令`systemdctl mask plymouth-quit-wait.service`,然后观察开机时间的变化[^1^]。之后,再次启用该服务以恢复其功能。- **检查依赖服务**:理解服务之间的依赖关系对于系统管理员来说至关重要。使用`systemctl list-dependencies --reverse plymouth-quit-wait.service`命令可以帮助了解哪些服务依赖于plymouth-quit-wait.service,从而更好地管理系统的启动流程[^1^]4. **与其他服务的互动**- **与网络服务的关联**:在某些情况下,plymouth-quit-wait.service可能会与网络服务产生互动,尤其是在系统尝试在启动时建立网络连接的情况下[^2^]。这可能会影响到服务的执行和系统的整体启动时间。- **替代方案的考虑**:如果发现plymouth-quit-wait.service在某些环境中不必要或存在问题,可以考虑使用其他的启动动画服务或禁用图形启动画面,以简化启动过程并可能改善启动速度[^2^]。总的来说,plymouth-quit-wait.service服务虽然在系统启动中扮演着重要的角色,但其对启动时间的实际影响较小。通过合理管理此服务及其依赖项,可以在保持系统美观的同时,也确保了系统启动的高效性。
卸载snap服务,注意用snap安装的软件也会被删除,snap list看查看安装的软件列表,下载之后可以看到磁盘空间里没了那些**/dev/loop*项**,开机也没了snapd.service和dev-loop*.device项,节约了大量开机时间```bash
root@ub1804:/home/xiaoyue# sudo apt purge snapd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:gir1.2-goa-1.0 gir1.2-snapd-1 linux-hwe-5.4-headers-5.4.0-84
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:gnome-software-plugin-snap* snapd*
升级了 0 个软件包,新安装了 0 个软件包,要卸载 2 个软件包,有 3 个软件包未被升级。
解压缩后将会空出 171 MB 的空间。
您希望继续执行吗? [Y/n] y

-----------分隔符-------------------

关闭plymouth-quit-wait.service

服务功能:

启动徽标加载:plymouth-quit-wait.service服务负责在系统启动过程中显示启动徽标,直到所有启动过程完成,然后隐藏启动初始屏幕,并显示图形登录界面。这一服务不仅增强了用户体验,还通过提供视觉反馈,让用户在启动过程中感受到系统的响应。
图形登录界面显示:此服务确保在系统完全准备好之后才显示图形登录界面,从而避免用户在系统尚未完全就绪时尝试登录,这可能会引起登录延迟或系统不稳定的问题

查看systemd-analyze blame 启动时间有无改善,好像没啥改善,给恢复了

关闭plymouth-quit-wait.service

root@ub1804:/home/xiaoyue# sudo systemctl disable NetworkManager-dispatcher.service
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
root@ub1804:/home/xiaoyue# 
root@ub1804:/home/xiaoyue# sudo systemctl disable NetworkManager-wait-online.serviceRemoved /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.

彩蛋:mask
看到systemctl的man手册, mask 选项的解释中有一句英语「This is a stronger version of disable, since it prohibits all kinds of activation of the unit, including enablement and manual activation.」

翻译过来就是:「这是一个增强版本的 disable,因为它阻止了所有激活这个单元的行为,包括启用和手动激活」。

mask 是英语「掩盖,遮蔽」的意思。

如果之前使用过mask命令,需要先取消屏蔽状态,可以使用systemctl unmask plymouth-quit-wait.service命令解除之前的屏蔽设置

按文章建议,关闭了两个网络相关的服务

root@ub1804:/home/xiaoyue# sudo systemctl stop plymouth-quit-wait.service
root@ub1804:/home/xiaoyue# systemctl mask plymouth-quit-wait.service
Created symlink /etc/systemd/system/plymouth-quit-wait.service → /dev/null.

但是启动时间目前还是稳定在了1分32秒,但是可以看到诊断输出信息的最后一行,进入图形化界面的时间,在取消atp-daily.service之后就由57.819s降低到了23s.

root@ub1804:/home/xiaoyue# systemd-analyze time
Startup finished in 2.534s (kernel) + 1min 30.233s (userspace) = 1min 32.768s
graphical.target reached after 21.484s in userspace

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双指针法 ( 三数之和 )

题目 :给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复…

代理IP类型有哪些?定义与区别

您应该对代理有了一定的了解。但是,代理服务器也有不同的类型。就其来源而言,最常见的代理服务器类型是住宅代理和数据中心代理: 1、住宅代理 住宅代理是 ISP 向房主提供的 IP 地址。它是与物理位置关联的真实 IP 地址,因此允许…

WPF中Window的外观实现及常用属性

文章目录 1. 概要2. Window的外观2.1 Window的外观组成2.2 Window的实现2.3 Window外观配置2.4 Window 的其他常用属性1. AllowsTransparency 2. WindowStartupLocation3. ShowInTaskbar4. ShowActivated5. SizeToContent6. Topmost7. WindowStyle 1. 概要 和 Android 类似, W…

小米SU7智能座舱介绍,果然有亮点!

2024 年,小米 SU7 横空出世,从开始的怀疑到发布后仅 24h 就达到了 8W 台的订单量,火到出圈的具象化。智能手机厂家造车,之前的华为做了榜样,小米作为汽车制造中又一条鲶鱼,能否给智能汽车市场带来新的契机? 小米造车可谓是各方位进行全新打造,包括座舱、底盘、智驾、车…

sentaurus节点重排

sentaurus使用时,有时候节点顺序会比较乱,为了方便更好的查看,可以对其进行重新编排,操作方法如下,右键——project——clean up 然后选中chean up 选项中的renumber the Tree,然后点击cleanup操作完成即可…

数据结构:模拟栈

数据结构&#xff1a;模拟栈 题目描述参考代码 题目描述 输入样例 10 push 5 query push 6 pop query pop empty push 4 query empty输出样例 5 5 YES 4 NO参考代码 #include <iostream>using namespace std;const int N 1000010;int m, x; int q[N]; string op; int…

ESP32S3——多线程

一、环境&#xff1a; 平台&#xff1a;arduino IDE 或 VS Code PlatformIO 皆可。 我的是后者&#xff0c;具体为&#xff1a; 框架&#xff1a;VS PlatformIO Arduino 二、硬件准备&#xff1a; 一个esp32s3 本文用到的是U0RXD&#xff08;GPIO44 &#xff09;与U0TXD…

TCP的核心属性

TCP的核心属性 一: TCP的核心属性1.1: 确认应答:1.2 : 超时重传1.3 : 连接管理1.3.1 三次握手1.3.2 四次挥手 1.4 滑动窗口1.5: 流量控制:1.6 拥塞控制1.7 延时应答1.8 :捎带应答1.9: 面向字节流1.10 : 异常情况 一: TCP的核心属性 1.1: 确认应答: 保证可靠性最核心的机制 1…

《web应用技术》第十次作业

将自己的项目改造为基于vue-cli脚手架的项目&#xff0c;页面有导航&#xff0c;学会使用router。 <el-aside width"200px" style"background-color: aliceblue;"> <el-menu :default-openeds"[1]" style"background-color:rgb(1…

springboot 打成jar部署到Linux环境后读取resources下面的文件

方法代码&#xff1a; ClassLoader loader Thread.currentThread().getContextClassLoader();InputStream flagInputStream loader.getResourceAsStream("static/imagesLogo/imageaaa.png");BufferedImage read;read ImageIO.read(flagInputStream);System.out.pr…

智慧农业灌溉系统的主要工作原理

一、概述   智慧农业灌溉系统是一种基于传感器技术和智能控制技术的灌溉系统。它能够根据土壤湿度、气象条件、作物需水量等多种因素&#xff0c;自动控制灌溉水量和灌溉时间&#xff0c;实现精准灌溉。相比传统的手动灌溉和定时灌溉&#xff0c;智慧农业灌溉系统更加高效、准…

QT error: allocation of incomplete type ‘Ui::Server‘

目录 前言 报错内容&#xff1a; 过程解析&#xff1a; 原因分析&#xff1a; daisy.skye的博客 QT合集http://t.csdnimg.cn/wEVbu 前言 最近又开始需要做上位机了&#xff0c;要知道qt上位机对我来说已经3年没有接触了&#xff0c;最开始接触还是毕业时工作中的简单学习和…

pycharm专业版安装保姆级教程

一、官网下载 PyCharm下载地址&#xff1a;http://www.jetbrains.com/pycharm/download/#sectionwindows 选择专业版点击下载 二、进入安装向导 下载完成后&#xff0c;点击.exe文件 点击是 点击下一步 可修改安装目录为自己想安装的位置 或者不修改也可 点击下一步 选择所…

【k8s 控制器:ReplicaSet、Deployment、StatefulSet ...】

控制器 ReplicaSet、Deployment、StatefulSet 和 DaemonSet 都是 Kubernetes 中的控制器对象&#xff0c;用于管理 Pod 的创建、扩展、缩减和更新等操作。 一、Deployment 适用无状态服务应用部署&#xff1b;Deployment 是在 ReplicaSet 的基础上提供了更高级功能的控制器。它…

变量位置不同会死机?郭天祥老师视频的遗留问题分析答案

在郭天祥老师视频里有一个问题分享&#xff0c;是EXMC初始化里的一个变量定义和初始化位置不同会导致程序死机&#xff0c;最终定位到程序是进入hardfault死机&#xff0c;但暂时没有后续分析了&#xff0c;这里我们来继续分析一下。 死机的程序是这样的&#xff1a; 这段代码…

如何使用 Python 和 Selenium 解决 Cloudflare 验证码

你知道吗&#xff1f;大约 20% 你需要抓取的网站使用 Cloudflare&#xff0c;这是一个强大且不断崛起的反机器人保护系统&#xff0c;可以轻松击败你的努力。如果你正在为 Cloudflare 验证码失败而苦恼&#xff0c;你并不孤单。在每一秒都很重要的世界里&#xff0c;许多人因为…

Mysql的两种安装方式

文章目录 第一种安装方式国内镜像库下载解压安装配置环境变量初始化数据库安装mysql登录mysql设置root密码退出登录假如忘记了密码&#xff0c;重置密码的步骤1、步骤一&#xff1a;停止 MySQL 服务2、步骤二&#xff1a;使用安全模式启动 MySQL3、步骤三&#xff1a;重置密码4…

Linux 内核优化:提升性能测试效率的关键步骤

大家好&#xff0c;本文介绍了如何通过优化 Linux 内核配置来提高系统性能&#xff0c;特别是在进行性能测试时。从调整文件系统、网络参数到内核参数优化&#xff0c;我们将深入探讨每个关键步骤&#xff0c;以帮助你在性能测试中取得更好的效果。 在进行性能测试时&#xff0…

centos安装部署Mysql8详细教程

文章目录 一、下载安装1.下载2.安装 二、常见问题1.You must reset your password using ALTER USER statement before executing this statement2.IP is not allowed to connect to this mysql 结尾 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、…

JL-8B/1111电流继电器 带板前接线附件 约瑟JOSEF

JL-8系列继电器型号&#xff1a; 电流继电器JL-8GB/11 电流继电器JL-8GA/21 过电流继电器JL-8GB/1 电流继电器JL-8B/521DK 电流继电器JL-8B/222DK 电流继电器JL-8B/1121 电流继电器JL-8B/12 电流继电器JL-8B/3211 电流继电器JL-8B/E2 电流继电器JL-8B/E3 过电流继电器JL-…