[Docker] stress container 만들어서 부하 테스트하기

제이브로·2024년 2월 20일
0

Docker

목록 보기
29/48
post-thumbnail

1. dockerfile

stress를 주는 이미지 만들기

FROM debian
MAINTAINER jbro321 <jaehyung0321@gmail.com>
RUN apt-get update
RUN apt-get install stress -y
CMD ["/bin/sh", "-c", "stress -c 2"]

2. 메모리 리소스 제한

2.1 Example 1

  • docker run -m 100m --memory-swap 100m stress:latest stress --vm 1 --vm-bytes 90m -t 5s
  • 최대 쓸 수 있는 메모리 : 100m
  • 스왑 메모리(memory-swap)에는 쓸 수 있는 메모리도 포함되어 있어서 최대 쓸 수 있는 메모리가 100m이므로 스왑 메모리를 100m로 주면 스왑 메모리를 쓸 수 없다.
  • 5초 동안 90m의 메모리 부하를 일으킨다.

2.2 Example 2

  • docker run -m 100m --memory-swap 100m stress:latest stress --vm 1 --vm-bytes 150m -t 5s
  • 최대 쓸 수 있는 메모리 : 100m
  • 메모리 byte가 100m까지 가능한데, 150m를 주면, kill되어버린다.

WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.

  • GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
  • GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"

2.3 Example 3

  • docker run -m 100m stress:latest stress --vm 1 --vm-bytes 150m -t 5s
  • 스왑 메모리를 생략하면 최대 쓸 수 있는 메모리의 2배가 할당된다. (100m가 할당 되어, 200m가 스왑 메모리로 설정됨)

2.4 Example 4

  • docker run -d -m 100M --name m4 --oom-kill-disable=true nginx
  • docker inspect m4를 통해 OomkillDisable : true를 확인
  • cat /sys/fs/cgroup/memory/docker/{container ID}/memory.oom_control로 확인

oom memory

3. References

  1. joinc blog
  2. eyeballs blog
profile
기록하지 않으면 기록되지 않는다.

0개의 댓글