经过物理设备环境进行多次验证, 包括最后选择虚拟机环境部署确认.
由于只有当特定操作后才会触发, 重启后并不会出现相关情况, 所以判定为非预期的资源占用 BUG :
Docker 服务的 Docker-Compose 会造成CPU负载异常的问题.
造成的现象是 :
- CPU 会有任意某一个核心 %iowait 一直处于 100% 负载的情况.
- 同一时间, 并没有磁盘的资源占用. 并没有很多的 磁盘读写操作.
系统版本:X86 平台
设备环境:经过对比验证, 与是否为虚拟机无关. 原环境为物理机 8c16t 的 CPU. 测试环境用 proxmox 安装部署.
BUG 现象 : CPU的 %iowait 持续负载 100%
出现频率:必现
联系方式:飞牛私有云 fnOS229群 - 王**
日志文件:无 (查看过相关日志, 资源占用开始爬升的时候, 所有日志几乎保持一致)
前置条件 :
- 保持系统 Docker 服务安装运行时.
- docker-compose 服务有可用项目空间.
复现步骤 :
- 系统安装过, 打开 Docker服务, 切换至 Compose 选项页
- 点击新增项目, 项目名称任意即可. 如 "fntset"
- 路径选择任意即可.
- 上传或创建 compose.yml 均可 :
-
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx-proxy
restart: always
volumes:
- ./logs:/var/log/nginx
ports:
- "801:80" # HTTP 端口映射
- 创建并启动项目即可.
故障现象 :
- 系统会在 Docker compose 启动的过程中, %iowait 逐步上升. 约 1分钟内达到 100%
辅助说明 :
- 如果重启设备, Docker compose 服务会正常运行. 容器会正常运行. 此时 %iowait 不会受影响.
- 处理器负载正常状态会一直持续到 [网页/APP] 打开 Docker 服务. 此时后台服务会每分钟进行 Dcoker 状态检测.
- 页面只要被任意方式访问一次之后, %iowait 就会持续处于满载 (100%) 的状态. (但是实际并没有任何的磁盘 i/o )
- 如果系统运行后, 并没有通过 网页/ APP 的访问访问 Docker , 则一直(至少1周)不会出现此种情况.
- 系统服务 trim_sac 好像会尝试搜索数据库, 但是没有看到哪个数据库内容有这些内容.
