练习实践-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 blame
         21.348s plymouth-quit-wait.service
          2.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


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BitMart 宣布将销毁 264万枚 BMX,为何平台币掀起销毁热潮?

根据 BitMart 2024年4月18日发布的官方公告,BitMart 将于 5 个工作日内销毁 2,637,063 枚 BMX,价值约 94.9 万美元。根据 BitMart 白皮书中关于「回购机制」的规定,BitMart 2024 年第一季度平台手续费收入的 20% 将用于 BMX 的月度回购和销毁…

碳化硅MOSFET短路保护方法

碳化硅MOSFET短路保护方法 1.概述2.IGBT和碳化硅MOSFET器件特性3.短路保护方法比较4.总结 1.概述 碳化硅 (SiC) MOSFET 已成为硅 (Si) IGBT 的潜在替代产品,适用于光伏逆变器、车载和非车载电池充电器、牵引逆变器等各种应用。与 Si IGBT 相比,SiC MOSFE…

C语言基础:字符串函数使用和剖析(2)

strcmp(字符串比较,比较两个字符串是否相等) int strcmp ( const char * str1, const char * str2 ); int main() {const char* p1 "abcdef";const char* p2 "sqwer";if ("abcdef" "sqwer")//千万不能这么比…

nginx中配置ssl证书(宝塔面板)

首先申请一个SSL证书,这里我申请的joyssl的免费证书。提交订单申请后,按照页面提示在域名解析中将CNAME和记录值配置好。 比如我用的阿里云, 这是好后,需要等几分钟,然后域名检验成功。 然后点击joyssl的左侧菜单的“证…

grep、sed、awk

grep:文本过滤工具 sed: 文本编辑工具 awk: 格式化文本 grep -n 显示行号 -i 忽略大小写 -v 取反 -o 只保留关键消息 # 找出文件的空行 grep ^$ test.txt -n # 找出文件非空行内容 grep ^$ test.txt -n -v # 找出文件非空行内容,并且排除注释&#xff…

大创报名步骤

目录 一、注册 二、创建项目 三、报名 一、注册 进入注册/登录 点击 点击 填写个人信息 二、创建项目 找到解压的文件 随便选一个 项目简介在你选择的文件中截取一段 询问自己寝室的人 被邀请者需要在微信公众号上搜索 “全国大学生创业服务网” 选择我的消息中同意 三、报名…

Facebook商城号怎么做?思路与操作分析

2016 年,Facebook打造了同名平台 Facebook Marketplace。通过利用 Facebook 现有的庞大客户群,该平台取得了立竿见影的成功,每月访问量将超过 10 亿。对于个人卖家和小企业来说,Facebook Marketplace是一个不错的销货渠道&#xf…

金士顿U盘被写保护的解决方法

1.适用的U盘芯片信息 USB设备ID: VID 0951 PID 1666 设备供应商: Kingston 设备名称: DataTraveler 3.0 设备修订版: 0110 产品制造商: Kingston 产品型号: DataTraveler 3.0 产品修订版: PMAP 主控厂商: Phison(群联) 主控型号: PS2251-07(PS2307) - F/W 08.03.50 [2018-…

使用python绘制日历热力图

使用python绘制日历热力图 日历热力图效果代码 日历热力图 日历热力图(Calendar Heatmap)是一种数据可视化图表,用于展示时间数据的分布和趋势。它将数据按天映射到一个日历中,通过颜色的变化表示每天的数据值大小。这种图表常用…

nginx平滑升级

#平滑升级 kill -USR2 <PID号> //查看nginx版本 [rootl1 logs]# nginx -v //查看nginx版本 nginx version: nginx/1.26.0 [rootl1 logs]# 安装一个1.25版本实验一下 [rootl2 ~]# cd /opt/ [rootl2 opt]# [rootl2 opt]# lsnginx-1.25.5.tar.gz nginx-1.26.0.tar.…

J-Lin烧录

1、J-linK介绍 J-Link是由德国SEGGER公司推出的&#xff0c;主要用于支持仿真ARM内核芯片的JTAG仿真器。它支持JTAG和SWD两种模式&#xff0c;可以配合多种集成开发环境&#xff08;如IAR EWAR, ADS, KEIL, WINARM, RealView等&#xff09;使用&#xff0c;支持ARM7/ARM9/ARM…

【Python编程】【Jupyter Notebook】启动时报错:no available port could be found

一、报错描述 在Jupyter Notebook中编写程序&#xff0c;无法运行&#xff0c;提示由于没有可供监听的端口&#xff0c;无法启动Jupyter服务器&#xff0c;如下图所示&#xff1a; 二、原因分析 通过报错信息&#xff0c;猜测大概是由于网络环境的原因。首先&#xff0c;关闭…

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

一、704. 二分查找 题目链接&#xff1a;https://leetcode.cn/problems/binary-search/description/ 文章讲解&#xff1a;https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1fA4y1o715 1.…

使用Matlab软件绘制函数图像

【实验目的】 1.利用Matlab实现平面上曲线和三维空间中曲线绘制&#xff0c;重点掌握隐函数、极坐标图像绘制的相关命令。 2.利用Matlab实现三维曲面绘制&#xff0c;加深对高等数学课程所学内容的理解 【实验内容与实现】 1、用两种方法绘制下面的曲线图 &#xff08;1&am…

计算机图形学入门06:视口变换

在前面的内容中&#xff0c;在MVP变换(模型变换&#xff0c;视图变换&#xff0c;投影变换)完后&#xff0c;所有的物体位置都变换到了[-1, 1]的标准立方体里&#xff0c;下一步要把物体绘制到屏幕(Screen)上。 1.什么是屏幕&#xff1f; 对于图形学来说把屏幕抽象的认为是一个…

【微信小程序】初识小程序

项目结构 项目基本组成结构 页面基础组成结构 JSON 配置文件 App.json app.json是当前小程序的全局配置&#xff0c;包括了小程序的所有页面路径、窗口外观、界面表现、底部tab等。 在 pages 中加入路径&#xff0c;保存后&#xff0c;开发者工具可以自动帮我们创建对应的页…

VMware虚拟机关机报错处理办法

VMware虚拟机关机报错处理办法 ​ 在 VMware ESXi 下面强制关闭一个沒有反应的 VM 虚拟机的方法, 一般正常都是使用 vSphere Client 去控制 VM 虚拟机的电源开关, 但是有时会发生即使用里面的 Power Off 按钮但是还是无法关闭我的 VM 虚拟机, 而且最终会出现一串 错误信息「An…

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

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

trace32 显示用户进程用户态调用栈

在只加载了linux vmlinux符号表的情况下&#xff0c;trace32 只能显示内核态的调用栈函数信息&#xff0c;无法显示用户态调用栈的函数信息&#xff1a; 查看进程maps 确认地址0x40616C为进程/bin/box的虚拟地址&#xff1b;而0xFFFF904E12FC为/lib/libc-2.30.so的地址&#x…

低代码开发平台一般都有哪些功能和模块?

在当今快速变化的数字化时代&#xff0c;企业对于高效、灵活且经济的软件开发解决方案的需求愈发迫切。低代码开发平台应运而生&#xff0c;成为众多企业实现数字化转型的首选工具。本文将详细探讨低代码开发平台一般具备的主要功能和模块&#xff0c;以及它们如何助力企业提升…