将 EC2 的启动时间从 4 秒提高到 2.8 秒,以加快构建速度。

主要观点:Depot 致力于快速构建,近期致力于加快 EC2 实例启动速度,通过深入分析启动过程进行优化,包括文件系统优化、禁用不必要服务等,还提到未来可从内核启动时间和 initramfs 等方面继续优化以进一步提升启动速度。
关键信息

  • 使用systemd-analyze分析启动时间,关注network-online.target
  • 对文件系统进行优化,如禁用noatime、跳过fsck等。
  • 移除 snaps 以减少启动开销,安装 amazon-ssm 代理的 deb 包。
  • 处理 AppArmor 及按需启动 snap 服务。
  • 禁用不必要的 systemd 服务,如systemd-journal-flush.service等。
  • 禁用 cloud-init 并使用静态 netplan 配置。
  • 未来计划从内核启动时间和 initramfs 等方面继续优化。
    重要细节
  • 启动时间分为内核 1.784 秒和用户空间 6.999 秒,共约 8.8 秒,优化后可降至 6.834 秒。
  • 不同优化措施的具体操作及效果,如禁用noatime可节省 200ms,移除 snaps 可节省约 300ms 等。
  • 关于各种服务的作用及是否可禁用的解释,如systemd-networkd-wait-online.service等。
  • 未来可通过编译内核不同标志及进一步优化 initramfs 来继续提升启动速度。
阅读 11
0 条评论