当前位置: 首页 > news >正文

Linux 服务器开机启动项过多导致启动慢如何优化 systemd 服务?

面对 systemd 管理的服务过多导致启动慢,最稳妥的做法是先通过分析工具定位耗时单元,再逐一评估是否禁用非核心服务,避免直接批量关闭引发依赖故障。

先说结论:优化启动速度的核心在于减少不必要的并行等待和超时重试,而不是盲目禁用服务。

  • 先定位:使用 systemd-analyze 找出耗时最长的单元
  • 先做:确认服务用途后再执行 disable 或 mask
  • 再验证:重启后对比分析数据并检查业务状态

命令速用版

# 查看整体启动耗时
systemd-analyze
# 列出按耗时排序的服务
systemd-analyze blame
# 查看关键链依赖
systemd-analyze critical-chain
# 检查失败的服务单元
systemctl list-units `--state`=failed

为什么会这样

systemd 虽然支持并行启动,但服务之间存在依赖关系。如果某个非关键服务启动超时或卡在依赖检查上,会阻塞后续流程。此外,部分发行版默认启用了大量硬件检测或云初始化服务,在特定环境下(如无对应硬件)会等待超时后才继续,累积起来就表现为启动慢。

分步处理

1. 分析启动耗时
登录后直接运行 systemd-analyze blame,它会列出所有单元按启动时间排序。重点关注排在前面且时间异常长的服务。

2. 确认服务用途
不要直接禁用。使用 systemctl status 服务名 查看描述,或搜索该服务名称。例如 NetworkManager-wait-online.service 常因等待网络超时而耗时,若服务器使用静态 IP 且不需要等待网络完全就绪,可考虑调整。

3. 禁用或屏蔽服务
确认无用后,使用 systemctl disable 服务名 禁止开机启动。若该服务会被其他单元自动拉起,需使用 systemctl mask 服务名 彻底屏蔽。

恢复方法:若误操作需要恢复,使用 systemctl unmask 服务名 解除屏蔽,再执行 systemctl enable 服务名 恢复开机启动。

配置覆盖与超时调整

1. 安全编辑配置
不建议直接编辑 /usr/lib/systemd/system/ 下的原始 unit 文件,因为系统更新可能会覆盖修改。请使用 systemctl edit 创建覆盖配置:

systemctl edit 服务名

该命令会打开编辑器,创建 /etc/systemd/system/服务名.d/override.conf 文件。

2. 调整超时参数示例
对于必须保留但启动慢的服务,可在覆盖配置中增加 TimeoutStartSec 避免默认超时等待。示例如下:

[Service]
TimeoutStartSec=30

保存退出后,运行 systemctl daemon-reload 使配置生效。

怎么验证是否生效

重启服务器后,再次运行 systemd-analyze 对比总耗时。同时使用 systemctl list-units `--state`=failed 确认没有关键服务因优化操作而失败。业务端口监听和日志正常也是必要检查点。

常见坑

  • 误禁网络服务:禁用 NetworkManager 或 systemd-networkd 可能导致远程失联,操作前确保有 console 权限。
  • 依赖断裂:某些服务被禁用后,依赖它的业务服务会启动失败,需检查 systemctl list-dependencies
  • masking 不可逆:mask 会将服务链接到 /dev/null,恢复需执行 unmask,操作前建议记录变更。
  • 直接编辑风险:直接修改原始 unit 文件会在系统包更新时丢失配置,务必使用 systemctl edit 进行覆盖。

参考来源

  • freedesktop.org, systemd-analyze 手册页,https://www.freedesktop.org/software/systemd/man/systemd-analyze.html
  • freedesktop.org, systemctl 手册页,https://www.freedesktop.org/software/systemd/man/systemctl.html

原文链接:https://www.zjcp.cc/ask/10898.html

http://www.jsqmd.com/news/801580/

相关文章:

  • 谷歌seo搜索引擎优化教程有吗?资深SEO总结的15个高效提速工具
  • 无畏契约报错全解|VAL/VAN 错误代码速查,一次搞定登录 / 网络 / 反作弊
  • 柳叶刀|参考文献不存在
  • Mac Mouse Fix终极指南:3分钟让你的普通鼠标在Mac上超越苹果原生体验
  • 【Midjourney×Raspberry Pi印相黑科技】:零代码实现AI绘画+树莓派暗房全自动输出,3步部署即用
  • 2026年中国电线电缆厂家推荐榜:八强品牌对比与高性价比选购全攻略 - 速递信息
  • 一台电脑变四台主机:Nucleus Co-Op如何让单人游戏秒变多人派对?
  • 2026电流型变频器品牌推荐:品牌对比与高性价比选型指南 - 博客湾
  • 5分钟快速上手:uBlock Origin终极浏览器广告拦截指南
  • 【管理科学】【财务领域】【社会科学】人的需求来源和由需求诞生的企业/业务/行业及其上游产业链/中游产业链/下游产业链的所有内容03
  • 拉普拉斯锐化实战:从零构建Python图像增强工具(附完整代码与标定对比)
  • ncmdumpGUI:轻松解锁网易云音乐NCM文件的终极解决方案
  • MATLAB table数据操作避坑指南:从readtable警告到花括号、圆括号的正确用法
  • Linux 部署 Flask 服务(完整极简教程)
  • 2026年销售系统软件排行榜:专家推荐TOP5 - SaaS软件-点评
  • 无需写代码!用 PackSoft 做数字展厅大屏
  • 古生物形态学数据建树实战:从数据清洗到最优树搜索
  • 突发,马斯克xAI解散了!22万张GPU忍痛全给Claude
  • CentOS7.9 vsftpd配置匿名用户本地用户和虚拟用户【20260512】002篇
  • 2026杭州项目申报机构优选指南:专精特新、高新企业、省科小申报口碑推荐,知识产权服务哪家好 - 海棠依旧大
  • Android启动镜像深度解析:MagiskBoot技术实现与架构设计
  • 原位拉伸冷热台潜力无限,这个冷热台厂家技术研发水平高!附国产冷热台厂家联系方式 - 品牌推荐大师1
  • Activity2Context:将活动日志转化为OpenCLAW可理解上下文数据的完整指南
  • pH计/酸度计知名厂家及品牌梳理:哪个在耐用性、口碑和售后方面更均衡? - 品牌推荐大师1
  • 2026年江苏电动破碎阀与水泥块料破碎机行业深度横评选购指南 - 精选优质企业推荐官
  • Transformers库安装总报错?可能是sentencepiece在捣鬼!一个重命名操作就解决
  • 观测不同模型在Taotoken平台上的响应延迟体感
  • 2026 别墅大门厂家格局重塑:源头工厂如何终结定制乱象?领跑者深度解析 - 企业品牌优选推荐官
  • 【高权重文章】宏洛图品牌设计:以全链创新引领包装设计行业,解码其理念、服务与包材设计核心优势 - 宏洛图品牌设计
  • 注意!南通金价高位预警,福正美回收实测夺魁 - 福正美黄金回收