Search

5. Container Resource Management

1. μ»¨ν…Œμ΄λ„ˆ λ¦¬μ†ŒμŠ€ 관리가 ν•„μš”ν•œ 이유

β€’
μ»¨ν…Œμ΄λ„ˆλŠ” 호슀트 OS의 CPU, λ©”λͺ¨λ¦¬, λ””μŠ€ν¬, λ„€νŠΈμ›Œν¬λ₯Ό 곡유.
β€’
μ œν•œμ„ 두지 μ•ŠμœΌλ©΄ ν•œ μ»¨ν…Œμ΄λ„ˆκ°€ μžμ›μ„ 독점해 λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆλ‚˜ ν˜ΈμŠ€νŠΈμ— 영ν–₯을 쀄 수 있음
β€’
DockerλŠ” Linux의 cgroups(Control Groups) κΈ°λŠ₯을 μ΄μš©ν•΄ μ»¨ν…Œμ΄λ„ˆλ³„ μžμ› μ‚¬μš©μ„ μ œμ–΄ν•¨

2. μ£Όμš” λ¦¬μ†ŒμŠ€ μ œν•œ μ˜΅μ…˜

λ©”λͺ¨λ¦¬ μ œν•œ

β€’
μ»¨ν…Œμ΄λ„ˆκ°€ μ‚¬μš©ν•  수 μžˆλŠ” μ΅œλŒ€ λ©”λͺ¨λ¦¬ 크기 μ§€μ •
docker run -it --name <μ»¨ν…Œμ΄λ„ˆλͺ…> --memory=512m <이미지λͺ…> docker run -it --name <μ»¨ν…Œμ΄λ„ˆλͺ…> --memory=512m --memory-swap=1g <이미지λͺ…>
Bash
볡사
β€’
-memory : μ΅œλŒ€ λ©”λͺ¨λ¦¬ μ œν•œ
β€’
-memory-swap : μŠ€μ™‘ 포함 μ œν•œ (μŠ€μ™‘ = RAM λΆ€μ‘± μ‹œ λ””μŠ€ν¬ μ‚¬μš©)

CPU μ œν•œ

β€’
μ»¨ν…Œμ΄λ„ˆμ— ν• λ‹Ήν•  CPU μ½”μ–΄ 수 μ œν•œ
docker run -it --name <μ»¨ν…Œμ΄λ„ˆλͺ…> --cpus=1 <이미지λͺ…>
Bash
볡사
β€’
-cpus : CPU μ½”μ–΄ 수 μ œν•œ
β€’
-cpu-shares : CPU 점유 μš°μ„ μˆœμœ„(κΈ°λ³Έκ°’ 1024)

λ””μŠ€ν¬ I/O μ œν•œ

β€’
νŠΉμ • λ””λ°”μ΄μŠ€μ˜ 읽기/μ“°κΈ° 속도λ₯Ό μ œν•œ
docker run -it --name <μ»¨ν…Œμ΄λ„ˆλͺ…> --device-write-bps /dev/sda:1mb <이미지λͺ…>
Bash
볡사

λ„€νŠΈμ›Œν¬ μ œν•œ

β€’
Docker μžμ²΄μ—λŠ” λŒ€μ—­ν­ μ œν•œ κΈ°λŠ₯이 μ—†μŒ
β€’
Linux tc(Traffic Control) 같은 μΆ”κ°€ 도ꡬλ₯Ό ν™œμš©ν•΄μ•Ό 함

3. λ¦¬μ†ŒμŠ€ μ‚¬μš©λŸ‰ λͺ¨λ‹ˆν„°λ§

μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§

docker stats
Bash
볡사
좜λ ₯ μ˜ˆμ‹œ:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS <μ»¨ν…Œμ΄λ„ˆID> <μ»¨ν…Œμ΄λ„ˆλͺ…> 0.0% 1.871MiB / 512MiB 0.37% 875B / 126B 0B / 8.19kB 2
Plain Text
볡사

4. 베슀트 ν”„λž™ν‹°μŠ€

1.
μ„œλΉ„μŠ€ νŠΉμ„±μ— 맞게 μ œν•œ μ„€μ •
β€’
μ›Ή μ„œλ²„ β†’ CPU μ œν•œ
β€’
λ°μ΄ν„°λ² μ΄μŠ€ β†’ λ©”λͺ¨λ¦¬ μΆ©λΆ„νžˆ ν• λ‹Ή
2.
항상 docker stats λ“± λͺ¨λ‹ˆν„°λ§ 툴둜 μƒνƒœ 확인
3.
운영 ν™˜κ²½μ—μ„œλŠ” Prometheus, Grafana 같은 λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œκ³Ό μ—°λ™ν•œλ‹€κ³  함
4.
Kubernetes μ‚¬μš© μ‹œ Pod λ‹¨μœ„λ‘œ requests/limits μ§€μ •

핡심 μš”μ•½

β€’
μ»¨ν…Œμ΄λ„ˆ λ¦¬μ†ŒμŠ€λŠ” -memory, -cpus, -cpu-shares μ˜΅μ…˜μœΌλ‘œ μ œν•œ κ°€λŠ₯
β€’
λ””μŠ€ν¬ I/O와 λ„€νŠΈμ›Œν¬λ„ μ œμ–΄ κ°€λŠ₯ (μΆ”κ°€ 도ꡬ ν•„μš”)
β€’
docker stats λͺ…λ Ήμ–΄λ‘œ μ‚¬μš©λŸ‰ λͺ¨λ‹ˆν„°λ§
β€’
μ„±λŠ₯ μ•ˆμ •μ„±κ³Ό λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆ 보호λ₯Ό μœ„ν•΄ ν•„μˆ˜