优化 docker 容器性能慢问题

问题:

部署环境下tomcat容器启动缓慢,耗时10多分钟,性能较差,同时后端服务响应较慢。

排查:

宿主环境:

优化 docker 容器性能慢问题_第1张图片

 docker使用情况:

优化 docker 容器性能慢问题_第2张图片

对比结果CPU、内存使用率都不高。

针对docker环境进行检查:

  vmstat 1 10

 使用vmstat统计每间隔1秒共10条信息的结果:

优化 docker 容器性能慢问题_第3张图片

结果中看了一看出cpu、内存使用情况都不高,但是system:中in、CS 较高。

优化 docker 容器性能慢问题_第4张图片

现在知道是谁让整体性能形成木桶效应,去排查为什么会慢:

优化 docker 容器性能慢问题_第5张图片

优化 docker 容器性能慢问题_第6张图片 

从存储驱动原理原理中可以看到这个信息:

  • 文件在容器层中存在:当文件存在于容器层并且不存在于镜像层时,直接从容器层读取文件;
  • 当文件在容器层中不存在:当容器中的进程需要读取某个文件时,如果容器层中不存在该文件,则从镜像层查找该文件,然后读取文件内容;
  • 文件既存在于镜像层,又存在于容器层:当我们读取的文件既存在于镜像层,又存在于容器层时,将会从容器层读取该文件。

 当tomcat解压war包后会形成很多个文件(.class、.jar等)。我这边使用的是文件挂载

   volumes:
      - D:\mydata\tomcat\webapps:/usr/local/tomcat/webapps        # 指定对应的数据卷

考虑war解压不会占用过多的磁盘空间,直接不使用挂载,将jar包部署到容器内。

优化 docker 容器性能慢问题_第7张图片

性能是直线飙升,原先部署时间要10多分钟,现在2分钟内搞定。

 

你可能感兴趣的:(docker,容器,运维)