如何查看服务启动时间 systemd-analyze性能分析工具

发布时间 - 2025-07-03 00:00:00    点击率:

systemd-analyze 是排查 linux 系统启动慢的核心工具,其主要用法包括:1. 使用 systemd-analyze 查看总启动时间及内核与用户空间耗时;2. 通过 systemd-analyze critical-chain 分析关键路径,找出拖慢启动的依赖服务链;3. 执行 systemd-analyze blame 列出各服务启动耗时,定位耗时最长的服务;4. 可选启用调试日志或生成启动流程图进一步分析;优化建议包括禁用不必要的服务、去除对网络的不必要依赖,并结合系统版本综合判断结果。

系统启动时间是排查性能问题的重要参考,尤其是当你发现 Linux 机器开机慢的时候。systemd-analyze 是 systemd 提供的一个内置工具,能帮你快速了解服务的启动耗时和整体性能瓶颈。


查看总启动时间和关键路径

运行以下命令就能看到整个系统的启动耗时:

systemd-analyze

输出会显示两个关键指标:

  • Startup finished:表示从开机到系统准备好所需的时间(包括内核、initramfs 和用户空间)
  • kernel + userspace:分别列出内核加载和用户空间初始化的时间

如果这个时间明显偏长,可以用下面这条命令进一步分析关键路径:

systemd-analyze critical-chain

它会列出影响启动时间的“关键链”,也就是最耗时的一条服务依赖路径。比如某个服务因为等待网络或磁盘超时导致整体延迟,通常会在这里体现出来。


查看单个服务的启动耗时

如果你怀疑某个具体的服务拖慢了系统启动,可以这样查看它的详细启动时间:

systemd-analyze blame

该命令会按启动时间排序,列出所有服务的耗时。例如你可能会看到类似这样的输出:

12.345s some-service.service
 8.765s another-service.service
 ...

排在最上面的就是启动时间最长的服务。你可以根据名字判断是否必要,或者是否有优化空间。

如果想更深入了解某个服务的具体启动过程,可以用:

systemd-analyze log-level debug
systemd-analyze log-target console

然后重启系统观察日志,不过这属于进阶操作,一般先用 blamecritical-chain 足够定位大部分问题。


优化建议与注意事项

  • 如果某个服务启动时间很长但又不常用,可以考虑禁用它:
    sudo systemctl disable some-slow-service
  • 某些服务默认会等待网络就绪,但如果不需要联网,可以修改服务文件去掉对网络的依赖。
  • 使用 systemd-analyze plot 可以生成完整的启动流程图,保存为 HTML 文件后便于可视化分析:
    systemd-analyze plot > boot-time.html

需要注意的是,不同发行版对服务的默认配置可能略有差异,所以最好结合自己的系统版本来看结果。


基本上就这些,掌握这几个命令和思路,大多数系统启动慢的问题都能快速定位。


# linux  # 工具  # ai  # 系统版本  # html  # 系统启动  # 可以用  # 自己的  # 的是  # 进阶  # 如果你  # 在这里  # 你可以  # 尤其是  # 就能 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript如何操作视频_媒体API怎么控制播放  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  html如何与html链接_实现多个HTML页面互相链接【互相】  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  JS经典正则表达式笔试题汇总  如何用PHP快速搭建CMS系统?  北京企业网站设计制作公司,北京铁路集团官方网站?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  公司网站制作价格怎么算,公司办个官网需要多少钱?  历史网站制作软件,华为如何找回被删除的网站?  三星、SK海力士获美批准:可向中国出口芯片制造设备  如何获取上海专业网站定制建站电话?  如何快速查询网站的真实建站时间?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  js实现点击每个li节点,都弹出其文本值及修改  Java垃圾回收器的方法和原理总结  EditPlus中的正则表达式 实战(4)  原生JS获取元素集合的子元素宽度实例  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  javascript如何操作浏览器历史记录_怎样实现无刷新导航  微信小程序 配置文件详细介绍  深圳网站制作的公司有哪些,dido官方网站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何在云主机快速搭建网站站点?  java获取注册ip实例  JS去除重复并统计数量的实现方法  个人摄影网站制作流程,摄影爱好者都去什么网站?  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  LinuxCD持续部署教程_自动发布与回滚机制  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel如何使用Blade模板引擎?(完整语法和示例)  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何快速生成橙子建站落地页链接?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  微信推文制作网站有哪些,怎么做微信推文,急?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel如何发送系统通知?(Notification渠道示例)  如何为不同团队 ID 动态生成多个“认领值班”按钮  太平洋网站制作公司,网络用语太平洋是什么意思?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何在服务器上三步完成建站并提升流量?  使用C语言编写圣诞表白程序