1 、容器 CPU 使用率过高

# 查看容器CPU使用情况

docker stats --no-stream <容器ID>

top -p $(docker inspect --format '{{.State.Pid}}' <容器ID>)

# 检查CPU限制配置

docker inspect --format '{{.HostConfig.CpuShares}} {{.HostConfig.CpuQuota}}/{{.HostConfig.CpuPeriod}}' <容器ID>

# 临时调整CPU限制

docker update --cpus 0.5 <容器ID>  # 限制为0.5个核心

docker update --cpu-shares 512 <容器ID>  # 降低CPU优先级

# 查看容器内进程CPU使用

docker exec <容器ID> top

2、容器内存泄漏与 OOM

# 查看容器内存使用

docker stats --no-stream <容器ID>

docker inspect --format '{{.HostConfig.Memory}}' <容器ID>  # 内存限制

# 检查OOM事件

dmesg | grep -i "out of memory" | grep <容器ID>

journalctl -k | grep -i oom | grep <容器名>

# 临时调整内存限制

docker update --memory 1g --memory-swap 1g <容器ID>

# 启用内存交换(不推荐生产环境)

docker update --memory-swap 60 <容器ID>

# 收集内存使用详情

docker exec <容器ID> free -h

docker exec <容器ID> top -o %MEM

3、 I/O 性能瓶颈

# 查看容器I/O使用情况

docker stats --no-stream <容器ID>

iotop -p $(docker inspect --format '{{.State.Pid}}' <容器ID>)

# 检查磁盘I/O负载

iostat -x 5 3

# 迁移容器到高性能存储

docker stop <容器ID>

# 备份数据卷

docker run --rm -v <原卷>:/source -v <新卷>:/dest alpine cp -a /source/. /dest/

# 使用新存储启动容器

更多推荐