Ubuntu进程如何提高启动速度
小樊
45
2025-12-10 04:58:37
Ubuntu 进程启动速度优化指南
一 定位瓶颈
- 使用 systemd 提供的分析工具查看整体耗时、各服务耗时与关键路径:
- 整体时间:systemd-analyze time
- 服务耗时排序:systemd-analyze blame
- 关键路径:systemd-analyze critical-chain
- 可视化分析可选:安装 bootchart/bootchart2,重启后在 /var/log/bootchart/ 生成 .png 启动图,直观定位卡点。
- 查看本次启动的高优先级错误:journalctl -b -p 3,排除硬件/驱动导致的延迟。
二 精简与并行化自启动
- 精简 systemd 服务
- 禁用不需要的服务(示例):sudo systemctl disable bluetooth.service cups.service ModemManager.service
- 彻底屏蔽(谨慎):sudo systemctl mask
- 变更前检查依赖:systemctl list-dependencies --reverse
- 并行化用户会话启动
- 安装会话预加载:sudo apt install preload,让常用应用库/二进制在空闲时预加载,缩短首次启动时间。
- 精简图形会话自启动
- 图形界面管理:gnome-session-properties(隐藏/禁用不需要的登录自启项)。
- 可选:使用轻量桌面或显示管理器
- 轻量桌面:Xfce/LXQt;显示管理器:lightdm(如从 gdm3 切换,执行:sudo dpkg-reconfigure lightdm)。
三 内核与文件系统优化
- 缩短 GRUB 等待并减少内核日志输出
- 编辑 /etc/default/grub:将 GRUB_TIMEOUT=2,必要时精简 GRUB_CMDLINE_LINUX_DEFAULT(如仅保留 quiet splash)。
- 更新配置:sudo update-grub
- SSD 优化
- 启用定期 TRIM:sudo systemctl enable fstrim.timer
- 或在 /etc/fstab 为 SSD 分区添加 discard(若设备与文件系统支持)。
- 文件系统检查与挂载
- 减少 fsck 频率:在 /etc/fstab 将非根分区的 pass 字段设为 0;根分区保持 1,不建议全局关闭。
- 挂载选项:使用 noatime/relatime 减少写入;仅在明确不需要恢复时才用 fsck.mode=skip(有数据风险,谨慎)。
四 验证与回退
- 每次调整后重启并复核指标:systemd-analyze time、systemd-analyze blame、systemd-analyze critical-chain
- 若发现某服务是关键路径瓶颈,优先优化其配置/并行度,或按需延迟启动;对关键业务服务避免直接 mask。
五 常见可安全禁用的服务示例
- bluetooth.service(无蓝牙)
- cups.service(不使用打印机)
- ModemManager.service(无蜂窝调制解调器)
- networkd-dispatcher.service(已使用 NetworkManager 管理网络)
- accounts-daemon.service(不需要在开机阶段进行用户账户预加载)
- 提示:禁用前用 systemctl list-dependencies 检查影响范围,变更后通过 systemd-analyze critical-chain 观察关键路径是否缩短。