fix(content): harden Docker examples

This commit is contained in:
yeasy
2026-06-01 10:33:50 -07:00
parent 094965e039
commit 1cdd3c582a
8 changed files with 34 additions and 25 deletions
@@ -96,7 +96,7 @@ done
```bash
# CPU % 超过 80%:需要增加 CPU 限制或优化应用
# MEM % 接近 100%:容器即将 OOM,需要增加内存或排查内存泄漏
# 如果 NET I/O 中 dropped 为非零:网络拥塞或丢包
# NET I/O 只显示收发字节;丢包要看 ip -s link、cAdvisor/Prometheus 或主机网卡计数器
```
### 19.3.3 cAdvisor 容器监控系统
@@ -376,7 +376,8 @@ docker run -m 512m --memory-swap 1g myapp:latest
# 参数说明:
# -m / --memory:内存限制(这里是 512MB
# --memory-swap:内存+SWAP 总额(这里是 1GB,意味着 SWAP 为 512MB
# 如果不设置 --memory-swap则等于 --memory 值
# 如果设置 --memory 但不设置 --memory-swap有主机 swap 时容器总量可达内存限制的 2 倍;
# 要禁用 swap,应把 --memory-swap 设置为与 --memory 相同
# Docker Compose 配置
services:
@@ -606,10 +607,15 @@ docker run -m 512m --memory-swap 1g myapp:latest
症状应用性能突然下降 CPU 使用率不高
诊断
```bash
# 查看 CPU 限流统计
docker exec <container_id> cat /sys/fs/cgroup/cpu/cpu.stat
# 查看 CPU 限流统计;现代发行版多为 cgroup v2,具体路径需先定位容器 cgroup
docker inspect --format '{{.State.Pid}}' <container_id>
grep cgroup /proc/<pid>/mountinfo
docker exec <container_id> cat /sys/fs/cgroup/cpu.stat
# 如果 throttled_time > 0,说明发生了 CPU 限流
# cgroup v1 主机可能仍使用:
# docker exec <container_id> cat /sys/fs/cgroup/cpu/cpu.stat
# 如果 nr_throttled / throttled_usec > 0,说明发生了 CPU 限流
# 解决方案:增加 CPU 限制
docker update --cpus 2 <container_id>
```