EC2 主机上的 Docker 执行速度较慢

EC2 主机上的 Docker 执行速度较慢

我们最近创建了一个 docker 镜像来运行 Terraspace 工具,以便在 GitLab 管道中执行我们的 CI/CD。容器用作ruby:3.0.2-alpine其上游,以供参考。

我们面临的问题是,它在 EC2 (m5.large) 上执行时速度极慢,以下是一些时间安排,包括在 docker 镜像中和在主机上本地运行该工具。docker 时间安排是在镜像下载后在镜像内部执行的。

EC2 Docker EC2 本地 Docker 当地的
实际5m33.403s 实际 0分44.799秒 实际 1分40.842秒 实际 0m39.626s
用户 0分11.150秒 用户 0m26.531s 用户 0m24.736s 用户 0分10.913秒
系统 0分1.437秒 系统 0 分 3.276 秒 系统 0分13.846秒 系统 0m4.580

对于标准 terraspace 映像而言,docker 内部的执行速度也较慢boltops/terraspace

这似乎不是一个资源使用问题,因为执行期间主机上还剩有大量资源

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT    MEM %     NET I/O          BLOCK I/O     PIDS
9b05765250b8   quirky_spence   0.54%     1.21GiB / 7.583GiB   15.95%    300MB / 3.43MB   0B / 1.08MB   3

以下是 Docker 机器的信息:

lient:
 Context:    default
 Debug Mode: false

Server:
 Containers: 4
  Running: 0
  Paused: 0
  Stopped: 4
 Images: 3
 Server Version: 20.10.4
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc version: %runc_commit
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.14.238-182.422.amzn2.x86_64
 Operating System: Amazon Linux 2
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 7.583GiB
 Name: ip-10-0-4-227
 ID: FUYW:PCXQ:5ZFW:4SMP:YIG4:RNBH:HCMH:6R53:NHS2:HTJO:VAKM:5QFB
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://docker-proxy/
 Live Restore Enabled: false

任何帮助都将不胜感激。

相关内容