收起左侧

CPU 负载 %iowait 异常 100%

0
回复
21
查看
 关闭 [ 复制链接 ]

3

主题

6

回帖

0

牛值

江湖小虾

经过物理设备环境进行多次验证, 包括最后选择虚拟机环境部署确认.

由于只有当特定操作后才会触发, 重启后并不会出现相关情况, 所以判定为非预期的资源占用 BUG :

Docker 服务的 Docker-Compose 会造成CPU负载异常的问题.

造成的现象是 :

  1. CPU 会有任意某一个核心 %iowait 一直处于 100% 负载的情况.
    • 通过 mpstat -P ALL 1 可以明确查看到.
    • image.png
    • 系统CPU 处理器的占用会看到 有 1/(CPU总核心数) 的 百分比 %iowait 占用
    • image.png
  2. 同一时间, 并没有磁盘的资源占用. 并没有很多的 磁盘读写操作.
    • 通过 iostat -xz 1 可以看到并没有明确的硬盘读写操作.
    • image.png

系统版本:X86 平台

设备环境:经过对比验证, 与是否为虚拟机无关. 原环境为物理机 8c16t 的 CPU. 测试环境用 proxmox 安装部署.

BUG 现象 : CPU的 %iowait 持续负载 100%

出现频率必现

联系方式:飞牛私有云 fnOS229群 - 王**

日志文件:无 (查看过相关日志, 资源占用开始爬升的时候, 所有日志几乎保持一致)

前置条件 :

  1. 保持系统 Docker 服务安装运行时.
  2. docker-compose 服务有可用项目空间.

复现步骤 :

  1. 系统安装过, 打开 Docker服务, 切换至 Compose 选项页
  2. 点击新增项目, 项目名称任意即可. 如 "fntset"
  3. 路径选择任意即可.
  4. 上传或创建 compose.yml 均可 :
  5. version: '3.8'
    
    
    services:
      nginx:
        image: nginx:latest
        container_name: nginx-proxy
        restart: always
        volumes:
          - ./logs:/var/log/nginx
        ports:
          - "801:80" # HTTP 端口映射
    
  6. 创建并启动项目即可.

故障现象 :

  1. 系统会在 Docker compose 启动的过程中, %iowait 逐步上升. 约 1分钟内达到 100%

辅助说明 :

  1. 如果重启设备, Docker compose 服务会正常运行. 容器会正常运行. 此时 %iowait 不会受影响.
  2. 处理器负载正常状态会一直持续到 [网页/APP] 打开 Docker 服务. 此时后台服务会每分钟进行 Dcoker 状态检测.
    • image.png
  3. 页面只要被任意方式访问一次之后, %iowait 就会持续处于满载 (100%) 的状态. (但是实际并没有任何的磁盘 i/o )
  4. 如果系统运行后, 并没有通过 网页/ APP 的访问访问 Docker , 则一直(至少1周)不会出现此种情况.
  5. 系统服务 trim_sac 好像会尝试搜索数据库, 但是没有看到哪个数据库内容有这些内容.
    1. image.png
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则