카테고리 없음
컨테이너 부하 테스트
Dexlee
2021. 11. 10. 20:38
1. stress container 생성
- 컨테이너 빌드 : 부하 테스트 프로그램 stress를 설치하고 동작시키는 컨테이너 빌드
- stress --cpu 2
- CPU 부하테스트 : 2개 cpu core를 100% 사용하도록 부하 발생
- stress --vm 2 --vm-bytes <사용할 크기>
- 메모리 부하 테스트 : 프로세스 수 2개와 사용할 메모리만큼 부하 발생
1) vi dockerfile
FROM ubuntu
RUN apt-get update; apt-get install stress -y
CMD [“/bin/sh”, “-c”, “stress -c 2”]
2. 메모리 리소스 제한
- docker run -m 100m --memory-swap 100m stress:latest stress --vm 1 --vm-bytes 90m -t 5s
- docker run -m 100m --memory-swap 100m stress:latest stress --vm 1 --vm-bytes 150m -t 5s
- 100m 이상이므로, 견디질 못함.
3. OOM-Killer(Out-Of-Memory)
- 메모리가 부족하면 프로세스를 죽인다.
- docker run -d -m 100M --name m4 --oom-kill-disable=true nginx
- 테스트를 위해
- docker inspect m4
- m4 container에 대한 모든 정보를 확인 가능
4. CPU 리소스 제한
- docker run --cpuset-cpus 1 --name c1 -d stress:latest stress --cpu 1
- cpu 2번만 작동시킴.
- docker run --cpuset-cpus 0-1 --name c2 -d stress:latest stress --cpu 1
- cpu 1,2번 중 랜덤으로 작동시킴.
5. cpu 리소스 할당
- cpu 상대적 가중치를 할당
- docker run -c 2048 --name cload1 -d stress:latest
- docker run --name cload2 -d stress:latest
- default -c 1024
- docker run -c 512 --name cload3 -d stress:latest
- docker run -c 512 --name cload4 -d stress:latest
6. Block I/O 제한
- --device-write-iops를 적용해서 write속도의 초당 quota를 제한해서 IO write를 발생시킴.
- lsblk
- 리눅스 디바이스 정보 출력하는 명령어
- 이 명령어로 xvda or vda 인지 이름 확인
- docker run -it --rm --device-write-iops /dev/vda:10 ubuntu:latest /bin/bash
- dd if=/dev/zero of=file1 bs=1M count=10 oflag=direct
- i/o 부하 걸기
- after i/o,
- 10485760 bytes (10 MB, 10 MiB) copied, 0.908064 s, 11.5 MB/s
- docker run -it --rm --device-write-iops /dev/vda:100 ubuntu:latest /bin/bash
- after i/o
- 10485760 bytes (10 MB, 10 MiB) copied, 0.005499 s, 1.9 GB/s
- 쿼터 크기(10-100)가 10배가 더 크니 속도 차이가 엄청 커진다.