文档首页/ 云容器引擎 CCE/ 常见问题/ 节点/ 节点运行/ 节点磁盘利用率高的问题排查
更新时间:2025-07-18 GMT+08:00
分享

节点磁盘利用率高的问题排查

问题现象

节点磁盘利用率高,执行df -h命令,输出中存在使用率超过90%的场景:

问题根因

以下原因均可能导致节点磁盘利用率偏高:

  • 场景一:磁盘上存在大文件。
  • 场景二:由于容器挂载hostPath或者emptyDir的,大量容器数据写入主机导致。
  • 场景三:容器自身log日志打印,日志未设置保存天数,导致日志过大。

解决方法

  • 场景一:排查是否存在大文件
    使用find命令来查找大文件。例如,要查找所有大于1GB的文件,可以使用以下命令:
    find / -type f -size +1G

    这个命令从根目录/开始查找所有大小超过 1GB 的文件(包括隐藏文件)。

    示例如下:

    • 查找当前文件夹下超过10k的文件

    • 查找根目录下的超过100M的文件

  • 场景二:查询容器挂载路径

    查询Pod挂载方式

    kubectl describe pods | grep -Pz  Volumes

    输出示例如下:

    如果容器挂载hostPath或者emptyDir,则需进一步排查挂载路径文件夹里的文件大小。

  • 场景三:查询日志存储配置
    • docker:
      执行以下命令:
      cat /etc/docker/daemon.json

      输出示例:

      {
        "log-driver": "json-file",
        "log-opts": {
          "max-size": "10m",
          "max-file": "3"
        }
      }
    • containerd:

      查看kubelet配置文件:

      cat /opt/cloud/cce/kubernetes/kubelet/kubelet_config.yaml

      输出示例:

      containerLogMaxSize: 50Mi
      containerLogMaxFiles: 20

使用建议

  1. 清理无用的文件。
    参考命令如下:
    • 列出当前目录下的所有文件
      ls -la
    • 删除无用的文件
      rm -f <file_name>
  2. 对于需要写入大量数据的Pod,建议使用云存储。详情请参见存储概述
  3. docker、containerd的日志文件配置maxSize和maxFile。

    更新配置需要重启docker服务或kubelet服务,请谨慎操作。

  4. 定期清理节点上没有使用的镜像。
    • 使用containerd容器引擎的节点:
      1. 查看节点上的本地镜像。
        crictl images -v
      2. 确认镜像无需使用,并通过镜像ID删除无需使用的镜像。
        crictl rmi {镜像ID}
    • 使用docker容器引擎的节点:
      1. 查看节点上的本地镜像。
        docker images
      2. 确认镜像无需使用,并通过镜像ID删除无需使用的镜像。
        docker rmi {镜像ID}

相关文档