diag-container-oomlisted
Install: claude install-skill seed-forge/harness-ai-kit
# Container OOM Full-Chain Diagnostics
## 用途
当容器被 OOM killed、`docker inspect` 显示 `OOMKilled: true`、或系统日志出现 OOM killer 记录时触发。
## 输入
- 目标主机 + 容器名称/ID
- 可选:Compose 文件路径
## 输出
- OOM 根因分析报告 + 修复建议
## 诊断步骤
### Step 1: 确认 OOM 事件
```bash
# 内核 OOM killer 日志
dmesg | grep -i "oom\|killed process" | tail -20
journalctl -k | grep -i oom | tail -20
# Docker 容器 OOM 状态
docker inspect {container} --format='{{.State.OOMKilled}} {{.State.ExitCode}} {{.State.Status}}'
# 最近 OOM 的容器
docker ps -a --filter "status=exited" --format '{{.Names}}: exit={{.Status}}' | head -10
```
### Step 2: Cgroup 内存限制
```bash
# 容器的内存限制
docker inspect {container} --format='Memory limit: {{.HostConfig.Memory}} Swap: {{.HostConfig.MemorySwap}}'
# cgroup v1
cat /sys/fs/cgroup/memory/docker/{container_id}/memory.limit_in_bytes
cat /sys/fs/cgroup/memory/docker/{container_id}/memory.usage_in_bytes
cat /sys/fs/cgroup/memory/docker/{container_id}/memory.max_usage_in_bytes
# cgroup v2
cat /sys/fs/cgroup/system.slice/docker-{container_id}.scope/memory.max
cat /sys/fs/cgroup/system.slice/docker-{container_id}.scope/memory.current
cat /sys/fs/cgroup/system.slice/docker-{container_id}.scope/memory.events
```
### Step 3: Compose / 运行时配置
```bash
# docker-compose.yml 中的 memory 配置
grep -A 5 "deploy\|mem_limit\|memory" docker-compose.yml
# 当前所有容器的内存限制
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.Container}}"
```
### Step 4: 系统内存状态
```bash
# 系统内存
free -h
cat /proc/meminfo | grep