IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 解决ubuntu开机变慢;删除耗时启动项 -> 正文阅读

[系统运维]解决ubuntu开机变慢;删除耗时启动项

windows+ubuntu双系统,其中ubuntu20安装在机械硬盘上。

使用一段时间后ubuntu20的开机时间变的很长,需要2分钟左右,而且开机后一段时间很卡顿。

经过本文解决后开机时间从2min减少到36s。

目录

1、过多开机启动项

2、snapd耗时

3、太多journal


1、过多开机启动项

可以用以下命令来查看开机启动项耗时,并且关掉不需要的启动项。

systemd-analyze blame #查看开机启动项耗时
systemd-analyze time #查看总的开机时间
systemd-analyze critical-chain #启动时间树状图
systemd-analyze plot > ~/SystemdAnalyzePlot.svg #生成开机时间分析图,可以用图片或者浏览器打开看
systemctl disable 启动项名称.service #禁用该启动项
systemctl mask 启动项名称.service #强力禁用该启动项,确保其他项也不能唤起它

建议删掉的开机启动服务:

 #网卡相关?
sudo systemctl disable NetworkManager-dispatcher.service
#服务器网络相关?等待网络连接
sudo systemctl disable NetworkManager-wait-online.service
#开机启动动画?
sudo systemctl mask plymouth-quit-wait.service

不能删掉的开机启动服务:

accounts-daemon.service #账户守护进程?
NetworkManager.service #删掉后桌面右上方就不会有网络的图标了
systemd-journal-flush.service #boot时日志的读取和记录,不要禁用;下文会讲怎么处理
snapd.service #ubuntu自带的应用管理软件,下文会讲怎么处理
udisks2.service #没禁用过
dev-sda3.device #后缀是device的都不要禁用,是读取硬盘

验证某项sevice能否关闭,可以关一下看一下:

#用systemctl
sudo systemctl stop NetworkManager.service #暂停
sudo systemctl start NetworkManager.service #启动
sudo systemctl restart NetworkManager.service #重启
sudo systemctl disable NetworkManager.service #禁用
sudo systemctl reenable NetworkManager.service #取消禁用
#也可以用service
sudo service network-manager stop/start/restart/status

2、snapd耗时

如果你发现snapd.service耗时大,同时有一堆的dev-loop*.device耗时,那说明是snap拖慢了开机时间。如下图:

snap其实就是ubuntu自带的软件商店software store,也叫snap-store。除了用apt或者下载deb包来安装软件外,ubuntu上还可以在这个snap软件商店里直接搜索和下载软件,我就用它下载了好几款软件(vscode、typora、SmpleScreenRecorder等)。snap也可以在命令行使用,有点类似apt-get或者apt。

用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间和boot时间,也会占用cpu等资源使得应用启动变慢。可以查看snap下安装了哪些应用:

snap list

可见我就用snap安装了core、code、snapd、typora等显著增加开机时间的应用。 那些dev-loop*.device磁盘空间就是snap为不同应用创建的,可以用df命令来查看磁盘的划分:

df -h

?比如/dev/loop1和2就对应了code(vscode),那么对应的开机项dev-loop1.device和dev-loop2.device就显著增加了开机时间。

最好的解决办法就是删除snapd。注意用snap安装的软件如vscode等也会被删除,之后用apt或者deb包重新安装一下就行(实测用deb包安装的vscode和typora软件启动都变快了)。

#彻底删除snapd和配置文件
sudo apt purge snapd
#不要用autoremove!否则很多依赖也都会被删除
#sudo apt autoremove --purge snapd

然后你就会发现df磁盘空间里没了那些/dev/loop*项,开机也没了snapd.service和dev-loop*.device项,节约了大量开机时间。

3、太多journal

如果启动时systemd-journal-flush.service耗时较多,不要禁用这个服务,而应该去检查/var/log/journal文件夹是否已经积累了很多日志。每次开机boot时会把日志存在这里,并且读取以前的日志,久而久之这个文件夹越来越大,boot时耗时也越来越多了。

可以试着删除journal文件夹:

# 查看占据磁盘大小
journalctl --disk-usage
# 清除一些磁盘上的老的文件
sudo rm -rf /var/log/journal/

为了避免每次都手动删除日志,可以设置journal的最大容量:

sudo gedit /etc/systemd/journald.conf

将文件里的如下两行取消注释并添加大小限制:

#SystemMaxUse=
#SystemMaxFileSize=
#SystemMaxFiles=
SystemMaxFileSize=1G
SystemMaxFiles=5
#SystemMaxUse=50M #这行没试

补充一下,/var/cache/apt下的缓存也可以清理来节约磁盘空间(但是和开机速度无关)。

#删除 /var/cache/apt/archives/ 已经过期的deb.
sudo apt autoclean
#将 /var/cache/apt/archives/ 的 所有 deb 删掉
sudo apt clean

经过以上操作,开机时间由2min降低到了36s。现在的开机启动项和开机时间如下:

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:48:04  更:2022-09-04 01:49:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:34:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计