cold-start

GitHub

提供冷启动优化参考,涵盖Docker镜像精简、Fargate CPU调优、SOCI懒加载及Lambda Bedrock发现修复,旨在显著降低容器与函数的启动延迟并减小镜像体积。

.codex/skills/cold-start/SKILL.md serithemage/serverless-openclaw

Trigger Scenarios

优化应用或容器的冷启动性能 分析并减少Docker镜像大小 调整Fargate或Lambda的资源配置以改善启动时间

Install

npx skills add serithemage/serverless-openclaw --skill cold-start -g -y
More Options

Non-standard path

npx skills add https://github.com/serithemage/serverless-openclaw/tree/main/.codex/skills/cold-start -g -y

Use without installing

npx skills use serithemage/serverless-openclaw@cold-start

指定 Agent (Claude Code)

npx skills add serithemage/serverless-openclaw --skill cold-start -a claude-code -g -y

安装 repo 全部 skill

npx skills add serithemage/serverless-openclaw --all -g -y

预览 repo 内 skill

npx skills add serithemage/serverless-openclaw --list

SKILL.md

Frontmatter
{
    "name": "cold-start",
    "description": "References cold start optimization history and techniques. Covers Docker image optimization, Fargate CPU tuning, SOCI lazy loading, and Lambda Bedrock discovery fix. Use when optimizing startup performance.",
    "allowed-tools": "Read, Glob, Grep"
}

Cold Start Optimization Reference

Full analysis: docs/cold-start-optimization.md

Results Summary

Target Before After Savings
Docker image size 2.22 GB 1.27 GB 43% reduction
Fargate cold start ~120s (0.25 vCPU) ~40-57s (1 vCPU) ~80s
Lambda cold start 56s 1.35s ~54s

Measurement Commands

make cold-start        # Full measurement (stops tasks + cleans TaskState first)
make cold-start-warm   # Warm start measurement (skip idle wait)
make task-status       # Verify task state before measuring
make task-stop         # Stop all tasks
make task-stop-recent  # Stop only most recent task

Important: Always use make cold-start — never run the measurement script directly without stopping existing tasks first.

Docker Image Optimizations (Fargate)

Optimization Savings Technique
Remove AWS CLI -358 MB Replaced aws s3 sync with @aws-sdk/client-s3 Node.js code (s3-sync.ts)
chown layer optimization -134 MB COPY --chown=openclaw:openclaw instead of separate RUN chown
Pre-generated openclaw config Handled in Dockerfile (skip runtime onboard)
start-openclaw.sh simplification Removed S3 restore/onboard/sleep 2
zstd compression (P6) -16% (258→217 MB) --compression zstd in docker buildx

SOCI Lazy Loading

./scripts/deploy-image.sh --soci   # Linux only, ~50% additional pull-time reduction

SOCI CI: .github/workflows/deploy-image.yml

Fargate CPU Tuning (P7)

CPU Memory Cold Start
0.25 vCPU 512 MB OOM Kill
0.25 vCPU 2048 MB ~120s
0.5 vCPU 2048 MB ~80s
1 vCPU 2048 MB ~40-57s (default)
2 vCPU 4096 MB Configurable via env

Configure via env vars: FARGATE_CPU, FARGATE_MEMORY

Container Startup Parallelization

  • S3 restore + History load run via Promise.all (~3-5s saved)
  • IP discovery runs non-blocking (Bridge starts serving while discovery continues)
  • Stale IP fix: Bridge HTTP timeout 10s→3s, fallback to PendingMessages on failure

Lambda Cold Start (Phase 2 — The Biggest Win)

Root cause: Bedrock auto-discovery scanned all AWS regions on startup → 56s delay

Fix: bedrockDiscovery.enabled: false in OpenClaw config → 1.35s cold start

{
  "bedrockDiscovery": { "enabled": false }
}

Lambda Optimization Techniques

  • runEmbeddedPiAgent() — bypasses Gateway WS server (no :18789 socket bind)
  • extensionAPI.js via file:// URL (not in exports map)
  • HOME=/tmp (Lambda read-only filesystem)
  • Sessions in /tmp (ephemeral, acceptable for Lambda)
  • No S3 session restore (Lambda starts fresh each cold start)

OpenClaw Version Impact on Cold Start

Version Cold Start Status
v2026.2.9 65.3s Working
v2026.2.13 57.9s Working — pinned
v2026.2.14 N/A BROKEN (scope system)

Pin location: packages/container/Dockerfile

ARG OPENCLAW_VERSION=2026.2.13

Configurable via build-arg or env var.

Watchdog Dynamic Timeout

  • Active hours: 30-min idle timeout
  • Inactive hours: 10-min idle timeout
  • Based on CloudWatch activity metrics
  • Watchdog skips pre-warmed tasks where now < prewarmUntil

Version History

  • 504300d Current 2026-07-25 09:02

Same Skill Collection

.agents/skills/architecture/SKILL.md
.agents/skills/cold-start/SKILL.md
.agents/skills/context/SKILL.md
.agents/skills/cost/SKILL.md
.agents/skills/deploy/SKILL.md
.agents/skills/dev/SKILL.md
.agents/skills/implement/SKILL.md
.agents/skills/lambda-migration/SKILL.md
.agents/skills/openclaw/SKILL.md
.agents/skills/release/SKILL.md
.agents/skills/security/SKILL.md
.agents/skills/solo-maintainer-guard/SKILL.md
.agents/skills/solo-maintainer-inbox/SKILL.md
.agents/skills/solo-maintainer/SKILL.md
.agents/skills/status/SKILL.md
.agents/skills/troubleshoot/SKILL.md
.claude/skills/architecture/SKILL.md
.claude/skills/cold-start/SKILL.md
.claude/skills/context/SKILL.md
.claude/skills/cost/SKILL.md
.claude/skills/deploy/SKILL.md
.claude/skills/dev/SKILL.md
.claude/skills/implement/SKILL.md
.claude/skills/lambda-migration/SKILL.md
.claude/skills/openclaw/SKILL.md
.claude/skills/release/SKILL.md
.claude/skills/security/SKILL.md
.claude/skills/solo-maintainer-guard/SKILL.md
.claude/skills/solo-maintainer-inbox/SKILL.md
.claude/skills/solo-maintainer/SKILL.md
.claude/skills/status/SKILL.md
.claude/skills/troubleshoot/SKILL.md
.codex/skills/architecture/SKILL.md
.codex/skills/context/SKILL.md
.codex/skills/cost/SKILL.md
.codex/skills/deploy/SKILL.md
.codex/skills/dev/SKILL.md
.codex/skills/implement/SKILL.md
.codex/skills/lambda-migration/SKILL.md
.codex/skills/openclaw/SKILL.md
.codex/skills/release/SKILL.md
.codex/skills/security/SKILL.md
.codex/skills/solo-maintainer-guard/SKILL.md
.codex/skills/solo-maintainer-inbox/SKILL.md
.codex/skills/solo-maintainer/SKILL.md
.codex/skills/status/SKILL.md
.codex/skills/troubleshoot/SKILL.md

Metadata

Files
0
Version
504300d
Hash
6976040e
Indexed
2026-07-25 09:02

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 08:58
浙ICP备14020137号-1 $방문자$