Wir haben vor Kurzem ein Docker-Image erstellt, um das Terraspace-Tool für die Ausführung unserer CI/CD in GitLab-Pipelines auszuführen. Der Container verwendet es ruby:3.0.2-alpine
als Referenz für seinen Upstream.
Das Problem, mit dem wir konfrontiert sind, ist, dass es bei der Ausführung auf EC2 (m5.large) extrem langsam ist. Hier sind einige Zeitangaben, die das Ausführen des Tools innerhalb des Docker-Images und nativ auf dem Host beinhalten. Die Docker-Zeitangaben werden innerhalb des Images ausgeführt, nachdem es bereits heruntergeladen wurde.
EC2 Docker | EC2 | Lokaler Docker | Lokal |
---|---|---|---|
echte 5m33.403s | real 0m44.799s | real 1m40.842s | real 0m39.626s |
Benutzer 0m11.150s | Benutzer 0m26.531s | Benutzer 0m24.736s | Benutzer 0m10.913s |
System 0 m1,437 s | System 0 m3,276 s | sys 0m13.846s | System 0m4.580 |
Die langsamere Ausführung innerhalb von Docker gilt auch für das Standard-Terraspace-Image boltops/terraspace
.
Es scheint kein Problem mit der Ressourcennutzung zu sein, da während der Ausführung genügend Ressourcen auf dem Host verbleiben
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
Hier sind die Informationen zur Docker-Maschine:
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
Für jede Hilfe wäre ich dankbar.