우리는 최근 GitLab 파이프라인에서 CI/CD를 실행하기 위해 Terraspace 도구를 실행하기 위한 도커 이미지를 만들었습니다. 컨테이너는 ruby:3.0.2-alpine
참조용으로 업스트림에 사용됩니다.
우리가 직면한 문제는 EC2(m5.large)에서 실행될 때 속도가 매우 느리다는 것입니다. 다음은 도커 이미지 내부와 기본적으로 호스트에서 도구를 실행하는 것을 포함하는 몇 가지 타이밍입니다. Docker 타이밍은 이미지가 이미 다운로드된 후 이미지 내부에서 수행됩니다.
EC2 도커 | EC2 | 로컬 도커 | 현지의 |
---|---|---|---|
실제 5분 33.403초 | 실제 0m44.799s | 실제 1분 40.842초 | 실제 0m39.626s |
사용자 0m11.150s | 사용자 0m26.531s | 사용자 0m24.736s | 사용자 0m10.913s |
시스템 0m1.437s | 시스템 0m3.276s | 시스템 0m13.846s | 시스템 0m4.580 |
docker 내부의 실행 속도가 느린 것은 표준 terraspace 이미지에서도 마찬가지입니다 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
도커 머신 정보는 다음과 같습니다.
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
이에 대한 도움을 주시면 감사하겠습니다.