Kubernetes CPU
์์ ์ข
๋ฅ
- ์์ถ ๊ฐ๋ฅํ ์์
- Throttlingํด์ผ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์์์ ํ ๋นํ ์ ์๋ค.
- e.g. CPU
- ์์ถ ๋ถ๊ฐ๋ฅํ ์์
- eviction์ ํด์ผ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์์์ ํ ๋นํ ์ ์๋ค.
- e.g. ๋ฉ๋ชจ๋ฆฌ / ์ ์ฅ์ฅ์น
Kubernetes CPU
- CPU์ ๊ฐ์ด ์์ถ ๊ฐ๋ฅํ(compressible) ์์์ ๋ํด ์ ํ๊ฐ(limits)์ ์ค์ ํ๋ฉด, ์ฟ ๋ฒ๋คํฐ์ค๋ ํด๋น ์์์ด ์ค์ ๋ ์ ํ์ ์ด๊ณผํ์ฌ ์๋น๋์ง ์๋๋ก ์ค๋กํ๋ง(throttling)์ ์ํํ๋ค.
- ๋ฐ๋ฉด, ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์์ถ ๋ถ๊ฐ๋ฅํ(incompressible) ์์์ ์ ํ๊ฐ์ ์ด๊ณผํ๊ฒ ๋๋ฉด, ์ฟ ๋ฒ๋คํฐ์ค๋ ์์์ ํ๋ณดํ๊ธฐ ์ํด ์ผ๋ถ ์์
์ ๊ฐ์ ๋ก ์ข
๋ฃ(eviction)ํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ค.
CPU request
- ๋ชจ๋ ํ๋ก์ธ์ค์ ์ถฉ๋ถํ CPU ์๊ฐ์ด ์์ ๊ฒฝ์ฐ, CFS(Completely Fair Scheduler)๋ ๊ฐ CGroup์ด ๊ฐ์ง share(์ง๋ถ)๋ฅผ ํ์ธํ๊ณ , ์ ์ฒด ์ง๋ถ์ ํฉ๋งํผ CPU๋ฅผ ๋ถํ ํ ๋ค ๊ฐ CGroup์ ์ง๋ถ ๋น์จ๋๋ก ๋๋์ด ํ ๋นํ๋ค.
- ํ๋์ ์ปจํ
์ด๋๋ ๋จ์ง โkubepodsโ๋ผ๋ CGroup์ ํ ๋น๋ CPU ์๊ฐ๋ง์ ๋๋ ์ธ ๋ฟ์ด๋ค.
- Kubelet, ์ปจํ
์ด๋ ๋ฐํ์, ๋
ธ๋์ ๋ค๋ฅธ ์๋น์ค๋ค์ด CPU ์๊ฐ์ด ํ์ํ๋ฉด ์ธ์ ๋ ์ฐ์ ์ ์ผ๋ก ํ ๋น๋ฐ๊ฒ ๋๋ค.
CPU limit
- CPU ์ ํ(limit)์ ๋
ธ๋ ์ ์ฒด์ ์์ ๊ณผ์ ์ด๋ ์๋๋ฌ์ด ์ด์(noisy neighbor) ๋ฐฉ์ง๊ฐ ์๋, ๋จ์ง ์ปจํ
์ด๋๊ฐ ๋จ์ CPU ์์์ ์ด๊ณผํ์ฌ ์ฌ์ฉํ๋ ๊ฒ๋ง์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ด๋ค.
์ฐ์์
- ๊ตฌ๊ธ์ ๊ฐ๋ณ ์ํฌ๋ก๋์ ์ฑ๋ฅ ์ต๋ํ๋ณด๋ค ์ํฌ๋ก๋ ๊ฐ์ ์ฑ๋ฅ ์ผ๊ด์ฑ(consistency)์ ๋ ์ค์ํ๊ฒ ์๊ฐํ๋ค.
- ํ๋ก๋์
์ํฌ๋ก๋๋ ๋จ๋ CPU ์์์ ํ์ฉํ ์ ์์ด์ผ ํ๋ค.
- CPU ์์ฒญ(request)์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ํ๋ฉด ์ปจํ
์ด๋๋ผ๋ฆฌ CPU ์์์ โ๋นผ์์โ ์ฐ๋ ์ผ์ ๋ฐ์ํ์ง ์๋๋ค.
- ๋ง์ฝ CPU ์์ฒญ์ ์ค์ ํ์ง ์๊ฑฐ๋ ์๋ชป ์ค์ ํ๋ค๋ฉด, CPU ์ ํ(limit)์ด ์ด๋ฅผ ํด๊ฒฐํด ์ฃผ์ง๋ ๋ชปํ๋ค.
- ํ์ง๋ง ๋๋ถ๋ถ์ ์กฐ์ง์ ๊ตฌ๊ธ์ด ์๋๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ์ต์ ๋น์ฉ์ ์ธํ๋ผ ์์์ ๊ฐ๋ฅํ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ป๊ณ ๋ค์ดํ์์ ์ต์ํํ๋ ค ํ๋ค.
- ์ฌ๋ฌ ๊ทธ๋ฃน์ด ํ๋์ ์ค์ ํด๋ฌ์คํฐ์์ ์์์ ๊ณต์ ํ๊ฑฐ๋, ๊ทธ๋ฃน ์์ค์์ ์ผ์ ํ๊ณ ๋ฐ๋ณต ๊ฐ๋ฅํ ์ฑ๋ฅ์ด ๋ณด์ฅ๋ผ์ผ ํ ๊ฒฝ์ฐ์๋ ์ด ๋ฐฉ๋ฒ์ด ์ ๋ฆฌ
- ์คํ
์ด์ง(staging) ํ๊ฒฝ์์ CPU ์ ํ์ ์ค์ ํ์ฌ ์ต์
์ ์ํฉ(๋จ๋ ์์์ด ์์ ๋)์ ์๋์ ์ผ๋ก ์๋ฎฌ๋ ์ด์
ํ๊ณ , ์คํธ๋ ์ค ํ
์คํธ๋ฅผ ์ํํ ๋ ์ ๋ขฐํ ์ ์๋ ์ฌ๋ถ์ CPU ์์์ ์ ์ธํ ์ค์ ํ๊ณ๋ฅผ ํ
์คํธํ ์ ์๋ค.
Reference